在安装 mysql 时通常会生成一个超级用户 root, 很多人之后就一直沿用这一个用户, 虽然这会很方便, 但超级用户权限太大, 在所有地方使用它通常是一个安全隐患.
这一点跟操作系统的用户管理也是类似的, 多数人贪图方便都直接使用 administrator 或 root 用户, 其实是一种不建议的做法.
那么, 要如何在 mysql 中创建 root 之外的用户并赋予相应权限呢? 我们直接来看一个示例:
CREATE USER 'golden'@'localhost' IDENTIFIED BY 'gd2017'; GRANT ALL ON myapp.* TO 'golden'@'localhost'; FLUSH PRIVILEGES;
对上述语句, 这里简单解析一下:
1, create user 语句用于创建用户(及密码).
其中 golden 是用户名, gd2017 是密码. localhost 则表明是本地用户.
2, grant 语句用于对用户进行赋权.
其中, all 表示所有的权限, 包括对数据的增删改查及更改数据库;myapp 为具体某个数据库名, myapp.* 表示该数据库下所有的表(以及视图等);golden 则为刚才所建立的用户名.
3, flush 语句使更改生效.
通常, 以上设置能满足一般的需求了, 更细化的配置, 可以参考 mysql 官方在线文档(5.7 版): https://dev.mysql.com/doc/refman/5.7/en/create-user.html 和 https://dev.mysql.com/doc/refman/5.7/en/grant.html