Mysql 用户和权限
Posted 黄光跃
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql 用户和权限相关的知识,希望对你有一定的参考价值。
创建用户
CREATE USER ‘用户名‘@‘localhost‘ IDENTIFIED BY ‘密码‘;
删除用户
DROP USER ‘用户名‘@‘localhost‘;
权限列表
ALL 或 ALL PRIVILEGES 代表指定权限等级的所有权限。
ALTER 允许使用 ALTER TABLE 来改变表的结构,ALTER TABLE 同时也需要 CREATE 和 INSERT 权限。重命名一个表需要对旧表具有 ALTER 和 DROP 权限,对新表具有 CREATE 和 INSERT 权限。
ALTER ROUTINE 允许改变和删除存储过程和函数
CREATE 允许创建新的数据库和表
CREATE ROUTINE 允许创建存储过程和包
CREATE TABLESPACE 允许创建、更改和删除表空间和日志文件组
CREATE TEMPORARY TABLES 允许创建临时表
CREATE USER 允许更改、创建、删除、重命名用户和收回所有权限
CREATE VIEW 允许创建视图
DELETE 允许从数据库的表中删除行
DROP 允许删除数据库、表和视图
EVENT 允许在事件调度里面创建、更改、删除和查看事件
EXECUETE 允许执行存储过程和包
FILE 允许在服务器的主机上通过 LOAD DATA INFILE、SELECT ... INTO OUTFILE和LOAD_FILE()函数读写文件
GRANT OPTION 允许向其他用户授予或移除权限
INDEX 允许创建和删除索引
INSERT 允许向数据库的表中插入行
LOCK TABLE 允许执行 LOCK TABLES 语句来锁定表
PROCESS 允许显示在服务器上执行的线程信息,即被会话所执行的语句信息。
这个权限允许你执行 SHOW PROCESSLIST和 mysqladmin processlist 命令来查看线程,同时这个权限也允许你执行 SHOW ENGINE 命令
PROXY 允许用户冒充成为另外一个用户
REFERENCES 允许创建外键
RELOAD 允许使用 FLUSH 语句
REPLICATION CLIENT 允许执行 SHOW MASTER STATUS,SHOW SLAVE STATUS 和 SHOW BINARY LOGS 命令
REPLICATION SLAVE 允许SLAVE服务器连接到当前服务器来作为他们的主服务器
SELECT 允许从数据库中查询表
SHOW DATABASES 允许账户执行 SHOW DATABASE 语句来查看数据库。没有这个权限的账户只能看到他们具有权限的数据库。
SHOW VIEW 允许执行SHOW CREATE VIEW语句
SHUTDOWN 允许执行 SHUTDOWN 语句和 mysqladmin shutdown 已经 mysql_shutdown() C API 函数
SUPER 允许用户执行 CHANGE MASTER TO,KILL 或 mysqladmin kill 命令来杀掉其他用户的线程
允许执行 PURGE BINARY LOGS 命令,通过 SET GLOBAL 来设置系统参数,执行 mysqladmin debug 命令,开启和关闭日志
允许在连接数达到 max_connections 的情况下连接到服务器。
TRIGGER 允许操作触发器
UPDATE 允许更新数据库中的表
USAGE 代表没有任何权限,只能登陆
分配权限
格式:
GRANT <privileges> ON 数据库名.表名 TO ‘用户名‘@‘localhost‘ [IDENTIFIED BY ‘密码‘] [WITH GRANT OPTION];
参数:
privileges:是一个用逗号分隔的你想要赋予的MySQL用户权限的列表
IDENTIFIED BY ‘密码‘ 也是可选的,如果带上,密码是当前用户的密码
WITH GRANT OPTION 是可选的,带上就意味着该用户可以给其他用户分配权限
示例:
# 给用户 zs 所有数据库所有表的所有权限(超级管理员,和 root 用户一样的权限)
GRANT ALL ON *.* TO ‘zs‘@‘localhost‘ WITH GRANT OPTION;
# 给 ls 用户 test 数据库下面所有表的查询和修改权限
GRANT SELECT,UPDATE ON test.* TO ‘ls‘@‘localhost‘;
回收权限
使用 REVOKE 把分配权限的 TO 改成 FROM 即可
格式:REVOKE <privileges> ON 数据库名.表名 FROM ‘用户名‘@‘localhost‘
查看权限
查看当前用户权限:SHOW GRANTS;
查看指定用户权限:SHOW GRANTS FOR ‘用户名‘@‘localhost‘;
以上是关于Mysql 用户和权限的主要内容,如果未能解决你的问题,请参考以下文章