前言:
给用户分配mysql权限,命令大家都是知道的
(grant all privileges on 库名.表名 to 用户名@"可访问的地址" identified by "密码";)但是具体分配的权限有那些估计大家不是很清楚,现在我们就说一说mysql用户的权限:
1.数据库mysql用户权限的表是在mysql库中的user表中
权限总览:
1)ALL或ALL PRIVILEGES 代表指定权限等级的所有权限。
权限分类说明:
a.数据方面的:
1)SELECT 允许从数据库中查询表
2)INSERT 允许向数据库的表中插入行
3)UPDATE 允许更新数据库中的表
4)DELETE 允许从数据库的表中删除行
5)FILE 允许在服务器的主机上通过LOAD DATA INFILE,SELECT ... INTO OUTFILE,LOAD_FILE()函数读写文件
b.结构方面的权限:
1)CREATE 允许创建新的数据库和表
2)CREATE VIEW 允许创建视图
3)CREATE ROUTINE 允许创建存储过程和包
4)CREATE TEMPORARY TABLES 允许创建临时表
5)ALTER 允许使用ALTER TABLE来改变表的结构,ALTER TABLE同时也需要CREATE和INSERT权限。重命名一个表需要对旧表具有ALTER和DROP权限,对新表具有CREATE和INSERT权限。
6)ALTER ROUTINE 允许改变和删除存储过程和函数
7)INDEX 允许创建和删除索引
8)DROP 允许删除数据库、表和视图
9)TRIGGER 允许操作触发器
10)EVENT 允许在事件调度里面创建、更改、删除和查看事件
11)EXECUETE 允许执行存储过程和包
12)SHOW VIEW 允许执行SHOW CREATE VIEW语句
13)SHOW DB 允许账户执行SHOW DATABASES语句来查看数据库。没有这个权限的账户只能看到他们具有权限的数据库
c.管理方面的权限:
1)CREATE USER 允许更改、创建、删除、重命名用户和收回所有权限
2)GRANT 允许向其他用户授予或移除权限
3)PROCESS 允许显示在服务器上执行的线程信息,即被会话所执行的语句信息。这个权限允许你执行SHOW PROCESSLIST和mysqladmin processlist命令来查看线程,同时这个权限也允许你执行SHOW ENGINE命令
4)RELOAD 允许使用FLUSH语句
5)SHUTDOWN 允许执行SHUTDOWN语句和mysqladmin shutdown以及mysql_shutdown() C API函数
6)LOCK TABLE 允许执行LOCK TABLES语句来锁定表
7)REFERENCES 允许创建外键
8)Repl_client 允许执行SHOW MASTER STATUS,SHOW SLAVE STATUS和SHOW BINARY LOGS命令
9)REPLICATION SLAVE 允许SLAVE服务器连接到当前服务器来作为他们的主服务器
10)SUPER 允许用户执行change master to(z主从),KILL或mysqladmin kill命令来杀掉其他用户的线程,允许执行PURGE BINARY LOGS命令,通过SET GLOBAL来设置系统参数,执行mysqladmin debug命令,开启和关闭日志,即使read_only参数开启也可以执行update语句,打开和关闭从服务器上面的复制,允许在连接数达到max_connections的情况下连接到服务器。
11)CREATE TABLESPACE 允许创建、更改和删除表空间和日志文件组
2.权限建议分配说明:
3.回收权限:
1)建立一个用户:
grant select,insert,update,delete,create,drop on . to user@"%" identified by '123456';
flush privileges;
2)用户权限列表:
3)回收delete权限:
revoke delete on . from 'test'@'localhost';
4)回收后权限列表情况: