MySQL 权限管理

Frank发布

前段时间,我班有两个人的MySQL数据库被攻破,所有数据被清空。他们的MySQL实例有两个共同点:

  1. 暴露3306端口。
  2. 使用root用户登录且为弱密码。

MySQL的root用户权限过大,使用root登录是较危险的。因此我们应当避免在生产环境使用root登录,而是新建一个权限较小的用户,以确保安全。

配置端口

MySQL默认配置为只监听本地回环上的3306端口,如果需要将3306端口暴露给外网,需要首先修改MySQL配置。
编辑MySQL的 my.cnf配置文件,在ubuntu上,其默认位置为 /etc/mysql/my.cnf
找到 bind-address = 127.0.0.1,修改为 bind-address = 0.0.0.0
修改完成后,重启MySQL。仅仅配置端口并不能使MySQL可以被远程访问,还需要配置用户权限,见下。

创建用户并设置权限

MySQL的root用户权限过于强大,我们不应当在生产环境中,尤其是暴露了3306端口的生产环境中使用root用户登录。

创建新用户

使用ROOT用户登录,并输入下列语句新建一个用户。

此时用户username已经建好,不过还没有任何权限,也就无法进行任何操作。

设置权限

键入

其中每个字段的意思为

其中,权限字段为想要赋予该用户的权限。如果授予全部权限,则为 ALL PRIVILEGES,也可以单独授权某些命令,如 SELECT, UPDATE
来源IP为允许该用户登录的IP,例如 localhost为只允许该用户从本地登录。如果不想限制该用户的登录IP,则此字段设为 %
权限设置完成后,刷新权限使其生效

分类: 原创文章

2 条评论

Kay · 2018 年 2 月 3 日 下午 7:42

Google Chrome 62.0.3202.94 Google Chrome 62.0.3202.94 Windows 10 x64 Edition Windows 10 x64 Edition

mark
五个字

antior · 2018 年 1 月 26 日 下午 11:19

Google Chrome 64.0.3282.119 Google Chrome 64.0.3282.119 Windows 8.1 x64 Edition Windows 8.1 x64 Edition

mark
五个字

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Captcha *

%d 博主赞过: