Mysql权限系统

2019-09-27  本文已影响0人  iDevOps
权限级别

权限存储在mysql库的user, db, tables_priv, columns_priv, and procs_priv这几个系统表中,待MySQL实例启动后就加载到内存中

# 查看mysql实例默认root用户的权限

mysql> show grants for root@localhost;
+---------------------------------------------------------------------+
| Grants for root@localhost                                           |
+---------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION |
| GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION       |
+---------------------------------------------------------------------+
#  比root用户在几个权限系统表中的数据

mysql> select * from user where user='root' and host='localhost';
输出全是Y

mysql> select * from db where user='root' and host='localhost';
Empty set

mysql> select * from tables_priv where user='root' and host='localhost';
Empty set

mysql> select * from columns_priv where user='root' and host='localhost';
Empty set

mysql> select * from procs_priv where user='root' and host='localhost';
Empty set

ALL PRIVILEGES: 权限代表全局或者全数据库对象级别的所有权限限配合。如果是rename表名,则要求有alter和drop原表,create和insert新表的权限
Alter routine权限代表允许修改或者删除存储过程、函数的权限
Create权限代表允许创建新的数据库和表的权限
Create routine权限代表允许创建存储过程、函数的权限
Create tablespace权限代表允许创建、修改、删除表空间和日志组的权限
Create temporary tables权限代表允许创建临时表的权限
Create user权限代表允许创建、修改、删除、重命名user的权限
Create view权限代表允许创建视图的权限
Delete权限代表允许删除行数据的权限
Drop权限代表允许删除数据库、表、视图的权限,包括truncate table命令
Event权限代表允许查询,创建,修改,删除MySQL事件
Execute权限代表允许执行存储过程和函数的权限
File权限代表允许在MySQL可以访问的目录进行读写磁盘文件操作,可使用的命令包括load data infile,select … into outfile,load file()函数
Grant option权限代表是否允许此用户授权或者收回给其他用户你给予的权限
Index权限代表是否允许创建和删除索引
Insert权限代表是否允许在表里插入数据,同时在执行analyze table,optimize
table,repair table语句的时候也需要insert权限
Lock权限代表允许对拥有select权限的表进行锁定,以防止其他链接对此表 的读或写
mysqladmin processlist, show engine等命令
• Reference权限是在5.7.6版本之后引入,代表是否允许创建外键
• Reload权限代表允许执行flush命令,指明重新加载权限表到系统内存中,refresh命令代表关闭和重新开启日志文件并刷新所有的表
• Replication client权限代表允许执行show master status,showslave status,showbinary logs命令
• Replication slave权限代表允许slave主机通过此用户连接master以便建立主从复制关系
• Select权限代表允许从表中查看数据,某些不查询表数据的select执行则不需要此权限,如Select 1+1,Select PI()+2;而且select权限在执行update/delete语句中含有where条件的情况下也是需要的
• Show databases权限代表通过执行show databases命令查看所有的数据库名
• Show view权限代表通过执行show create view命令查看视图创建的语句Shutdown权限代表允许关闭数据库实例,执行语句包括mysqladminshutdown
• Super权限代表允许执行一系列数据库管理命令,包括kill强制关闭某个连接命令,change master to创建复制关系命令,以及create/alter/drop server等命令
• Trigger权限代表允许创建,删除,执行,显示触发器的权限
• Update权限代表允许修改表中的数据的权限
• Usage权限是创建一个用户之后的默认权限,其本身代表连接登录权限

mysql> create user t1@localhost;
Query OK, 0 rows affected (0.00 sec)
mysql> show grants for t1@localhost;
+----------------------------------------+
| Grants for t1@localhost                |
+----------------------------------------+
| GRANT USAGE ON *.* TO 't1'@'localhost' |
+----------------------------------------+
系统权限表

权限存储在mysql库的user,db, tables_priv, columns_priv, and procs_priv这几个系统表中,待MySQL实例启动后就加载到内存中

上一篇下一篇

猜你喜欢

热点阅读