MySQL权限级别
来源:互联网 发布:猫群算法 编辑:程序博客网 时间:2024/05/21 19:48
背景
前几天遇到一个问题,给某业务用户赋权的时候,由于数据库比较多,为了方便,使用的是grant … on *.* 方式,后续想要收回某几个数据库的权限的时候,比如mysql,information_schema,performance_schema这几个数据库,无法单独revoke,只能revoke *.* 之后再单独授权,因为*.*是global级别的权限,而针对单个库的则是database级别的权限。
MySQL权限级别
MySQL 中的权限分为五个级别,分别如下:
1、Global Level:
Global Level 的权限控制又称为全局权限控制,所有权限信息都保存在mysql.user 表中。
Global Level 的所有权限都是针对整个mysqld 的,对所有的数据库下的所有表及所有字段都有效。
GRANT SELECT,UPDATE,DELETE,INSERT ON . TO ‘def’@’localhost’;
Global Level 主要有如下这些权限(以下为5.0.3以上版本拥有权限)
2、Database Level
Database Level 其作用域即为所指定整个数据库中的所有对象。
GRANT ALTER ON test.* TO ‘def’@’localhost’;
GRANT DROP ON * TO ‘def’@’localhost’;
Database Level 主要少了以下几个权限:CREATE USER,FILE,PROCESS,RELOAD,
REPLICATION CLIENT,REPLICATION SLAVE,
SHOW DATABASES,SHUTDOWN,SUPER 和USAGE 这几个权限,没有增加任何权限。
3、Table Level
Table Level 的权限作用范围是授权语句中所指定数据库的指定表。
GRANT INDEX ON test.t1 TO ‘abc’@’%.jianzhaoyang.com’;
Table Level 的权限由于其作用域仅限于某个特定的表,所以权限种类也比较少,仅有ALTER,CREATE,DELETE,DROP,INDEX,INSERT,SELECT UPDATE 这八种权限。
4、Column Level
Column Level 的权限作用范围就更小了,仅仅是某个表的指定的某个(或某些)列。
GRANT SELECT(id,value) ON test.t2 TO ‘abc’@’%.XXX’;
Column Level 级别的权限仅有 INSERT , SELECT 和 UPDATE 这三种。
5、Routine Level
Routine Level 主要针对的对象是procedure 和function 这两种对象,在授予Routine Level 权限的时候,需要指定数据库和相关对象
GRANT EXECUTE ON test.p1 to ‘abc’@’localhost’;
Routine Level 的权限主要只有EXECUTE 和ALTER ROUTINE 两种
- mysql的权限级别
- mysql权限级别
- MySQL权限级别
- MySQL权限级别
- MySQL权限级别
- MOSS2007的权限级别
- SharePoint自定义权限级别
- Windows下降权MYSQL和apche的运行级别(普通用户权限运行)
- Project级别的权限控制
- Project级别的权限控制
- 代码创建自定义权限级别
- 关于数据库级别权限设置
- Android权限级别(protectionLevel)
- 创建SPUser时,权限级别
- Mysql 隔离级别
- mysql事务隔离级别
- Mysql 事务隔离级别
- MySQL隔离级别
- Python之日期与时间处理模块(date和datetime)
- codeforces-50A-A. Domino piling ( C && greedy && math )
- 关于volatile的用法
- ARM+LINUX路线
- HDU - 4324 拓扑排序
- MySQL权限级别
- ISP算法之Gamma校正
- kmp(pre)
- 在Labview中调用M文件(Matlab文件)
- 【win32】visual studio中"const char *"类型的实参与"LPCWSTR"类型的形参不兼容
- 【巨人的步伐以及人类的进击】BSGS algorithm
- Android 简易的音乐播放器
- Golang 代码程序案例
- 平行空间--打造自己的开场动画