MySQL 权限管理

前段时间,我班有两个人的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 thoughts on “MySQL 权限管理

  1. antior
    Google Chrome 64.0.3282.119 Google Chrome 64.0.3282.119 Windows 8.1 x64 Edition Windows 8.1 x64 Edition

    mark
    五个字

  2. Kay
    Google Chrome 62.0.3202.94 Google Chrome 62.0.3202.94 Windows 10 x64 Edition Windows 10 x64 Edition

    mark
    五个字

Leave a Reply

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

人姬测试 *