MySQL 用户与授权
随着机器和使用机器的人员增多,再也不能像从前一样一个 root 走天下了,这就需要经常使用到 mysql 的用户和授权了。在此记录整理,方便今后查找。
1.查看用户权限
1 | |
2.创建用户
1 | |
Usage
1 | |
3.授权
1 | |
Usage
1 | |
privileges 是一个用逗号分隔的你想要赋予的 mysql 用户权限的列表。你可以指定的权限可以分为三种类型:
数据库/数据表/数据列权限
ALTER: 修改已存在的数据表(例如增加/删除列和索引)。CREATE: 建立新的数据库或数据表。DELETE: 删除表的记录。DROP: 删除数据表或数据库。INDEX: 建立或删除索引。INSERT: 增加表的记录。SELECT: 显示/搜索表的记录。UPDATE: 修改表中已存在的记录。
全局管理MySQL用户权限:
FILE: 在MySQL服务器上读写文件。PROCESS: 显示或杀死属于其它用户的服务线程。RELOAD: 重载访问控制表,刷新日志等。SHUTDOWN: 关闭MySQL服务。
特别的权限:
ALL: 允许做任何事(和root一样)。USAGE: 只允许登录(其它什么也不允许做)。
4.设置与更改用户密码
1 | |
Note:
mysql 新设置用户或更改密码后需用
1 | |
刷新 mysql 的系统权限相关表,否则会出现拒绝访问;还有一种方法,就是重新启动 mysql 服务器,来使新设置生效。
5.撤销用户权限
1 | |
privilege, databasename, tablename:同授权部分
Note:
假如你在给用户'liubin'@'%'授权的时候是这样的(或类似的):GRANT SELECT ON test.user TO 'liubin'@'%;',则在使用REVOKE SELECT ON *.* FROM 'liubin'@'%';命令并不能撤销该用户对test数据库中user表的SELECT 操作。相反,如果授权使用的是GRANT SELECT ON *.* TO 'liubin'@'%';则REVOKE SELECT ON test.user FROM 'liubin'@'%';命令也不能撤销该用户对test数据库中user表的Select权限。
具体信息可以用命令SHOW GRANTS FOR 'liubin'@'%';查看。
6.删除用户
1 | |
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!