码迷,mamicode.com
首页 > 数据库 > 详细

Mysql中五级权限小结

时间:2015-01-11 17:32:32      阅读:341      评论:0      收藏:0      [点我收藏+]

标签:

mysql的权限控制主要是通过mysql库下的db,user,host,table_priv,column_priv表控制。

由于权限信息数据量比较小,所以mysql在启动时会将所有的权限消息加载到内存。
所以每次手工修改相关权限表时需要通过 flush privileges命令来重新加载。
但是如果是通过grant,revoke或drop user,create user等命令这修改权限的话就不需flush
 
mysql中权限一共有五级,按照大小顺序为:global > database > table > column, routine level是对存储过程或函数操作的
 
①, Global Level
全局权限控制,所有权限信息存储在mysql.user表中。Global level是针对整个mysqld的。
grant select,create table on *.* to u1 identified by password;
 
②, Database Level
作用域为指定整个数据库中的所有对象。
grant select,create table on databaseName.* to u1 identified by password;
 
user database1;
grant drop on * to ‘u1‘@‘%‘, ‘u1‘@localhost,u2@‘%‘;
 
③,Table Level
作用域为指定特定用户下的特定表
grant index on test.t1 to ‘u1‘@localhost
 
④, Column Level
作用域为特定库下特定表中的某些列。
Column级别的权限有insert,select,update。授权方式: grant select(c1,c2,c3) on test.t1 to ‘u1‘@localhost;
 
⑤, Routine Level
routine level的权限主要只有execute和alter routine两种,主要针对的对象是procedure和function这两种对象,在授权routine level权限时,需要指定数据库和相关对象。
grant execute on test.p1 to ‘u1‘@‘%‘;

Mysql中五级权限小结

标签:

原文地址:http://www.cnblogs.com/jandison/p/4216641.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!