MySQL用户授权与权限

时间:2021-11-18 22:49:35

MySQL权限如下表

权限名字 权限说明 Context
CREATE 允许创建新的数据库和表 Databases, tables, or indexes
DROP 允许删除现有数据库、表和视图 Databases, tables, or views
GRANT OPTION 能够把自己获得的权限转赠给其他用户一个副本 Databases, tables, or stored routines
LOCK TABLES 允许使用显式锁表的语句锁表,前提是你必须有SELECT权限 Databases
REFERENCES MySQL 5.7.6之前引用特权是未使用的。5.7.6,创建一个外键约束需要引用父表的特权。 Databases or tables
EVENT The EVENT privilege is required to create, alter, drop, or see events for the Event Scheduler. Databases
ALTER 允许修改权限或重命名表 Tables
DELETE 允许从表中或数据库中删除行 Tables
INDEX 允许创建或删除索引 Tables
INSERT 允许在表和数据库中插入行 Tables or columns
SELECT 允许在表和数据库这查询行 Tables or columns
UPDATE 允许在表和数据空中更新行 Tables or columns
CREATE TEMPORARY TABLES 允许创建和使用临时表 Tables
TRIGGER 允许使用触发器相关,前提是你必须拥有这个表的CREATE、DROP、EXECUTE或者Display权限 Tables
CREATE VIEW 允许使用CREATE VIEW语句 Views
SHOW VIEW 允许使用SHOW VIEW语句 Views
ALTER ROUTINE ALTER ROUTINE允许你修改存储过程(过程或函数)前提是你需要在存储过程上拥有ALTER或DROP权限 Stored routines
CREATE ROUTINE ALTER ROUTINE允许你创建存储过程(过程或函数)前提是你需要在存储过程上拥有ALTER或DROP权限 Stored routines
EXECUTE 允许你执行存储过程(过程或函数) Stored routines
FILE 文件读写权限允许你文件在服务器主机上使用LOAD DATA INFILE and SELECT 语句以及LOAD DATA()函数 File access on server host
CREATE TABLESPACE 允许创建表空间,前提是你需要CREATE、ALTER OR DROP tablespaces 以及属于log file 组 Server administration
CREATE USER 允许使用ALTER USER, CREATE USER, DROP USER, RENAME USER, and REVOKE ALL PRIVILEGES 语句 Server administration
PROCESS 允许使用SHOW PROCESSLIST or mysqladmin processlist看到线程属于其他账户,你总能看到自己的线程。PROCESS权限还允许使用SHOW ENGINE语句 Server administration
PROXY   Server administration
RELOAD 允许使用FLUSH语句,以及mysqladmin命令中对于FLUSH的操作例如:flush-hosts, flush-logs, flush-privileges, flush-status, flush-tables, flush-threads, refresh, and reload. Server administration
REPLICATION CLIENT 是否有权限去请求复制相关主数据库产生的事件的,允许显示的使用SHOW MASTER STATUS, SHOW SLAVE STATUS, and SHOW BINARY LOGS语句 Server administration
REPLICATION SLAVE 是否能够创建连接以复制的方式,连接至数据库服务器端 Server administration
SHOW DATABASES 允许使用SHOW DATABASES来查看所有数据库列表,如果没有这个权限则只能查看规定数据库 Server administration
SHUTDOWN 允许使用SHUTDOWN语句,mysqladmin shutdown命令,以及mysql_shutdown()API函数 Server administration
SUPER 超级特权可以用于终止其他会话或改变服务器运行。属于特别高级别的一类权限 Server administration
USAGE 无权限,当您想要创建一个没有权限的用户时,可以指定USAGE Server administration
ALL PRIVILEGES 所有权限: ALL PRIVILEGES,可以简写为ALL Server administration

授权方式:

GRANT 权限名字(多个权限用","号隔开) ON 数据库名.表名 TO '用户名'@'允许登录的ip地址' [IDENTIFIED BY '密码'];

例子:

GRANT ALTER,DELETE,INDEX,INSERT,SELECT,UPDATE ON zabbix_server.* TO 'zabbix'@'localhost' IDENTIFIED BY '';

查看用户获得的授权:

SHOW GRANTS FOR 'USERNAME'@'HOST';

SHOW GRANTS FOR 'zabbix'@'localhost';