Mysql 用户和权限

Posted 黄光跃

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql 用户和权限相关的知识,希望对你有一定的参考价值。

创建用户

CREATE USER ‘用户名‘@‘localhost‘ IDENTIFIED BY ‘密码‘;

删除用户

DROP USER ‘用户名‘@‘localhost‘;

权限列表

ALLALL 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 用户和权限的主要内容,如果未能解决你的问题,请参考以下文章

Django REST框架--认证和权限

Oracle-常用数据库对象笔记(片段)

gitlab 权限说明

MySQL8.0添加用户和权限

详解nginxphp-fpm和mysql用户权限

如何修复“代码应明确检查权限是不是可用”错误