MySQL权限表都有哪些,分别控制MySQL哪些权限,有哪些注意事项?



1、user:记录账号、密码、全局性权限信息等,里面的权限是全局级的


1)*_priv:适用MySQL服务器全局性的权限,假设某个账号拥有Delete_priv的全局性权限,则表示它可以对任何表进行删除数据的操作,这非常危险,所有一般只有超级用户root有这样的权限,其它普通用户没有。


2)max_*:资源管理列,用于规定账号的资源使用上限,其中:


     max_questions:每小时发出的语句数上限


     max_updates:每小时发出的修改类语句数上限


     max_connections:每小时连接数上限


     max_user_connections:允许保有的连接数上限


3)SSL相关列:


     ssl_type,ssl_cipher,x509_isuser, x509_subject


2、db:记录各个帐号在各个数据库上的操作权限


*_priv:适用于某个数据库的权限


3、tables_priv:表级别的权限


Column_priv比较奇怪,因为照理说tables_priv只显示表级别的权限,列级别的权限应该在columns_priv里显示才对。后来查了资料才知道,原来这是为了提高权限检查时的性能,试想一下,权限检查时,如果发现tables_priv.Column_priv为空,就不需要再检查columns_priv表了,这种情况在现实中往往占大多数。


4、columns_priv:列级别的权限


5、procs_priv:存储过程和函数的权限


6、proxies_priv:记录代理用户的权限


7、host权限表:配合db权限表对给定主机上数据库级操作权限作更细致的控制。这个权限表不受GRANT和REVOKE语句的影响