MySQL的权限
来源:互联网 发布:人工智能发展的危机 编辑:程序博客网 时间:2024/05/24 05:59
mysql的权限控制非常的多样,精细,从所有数据库的粒度到确定表的确定字段的控制都可以做到。
mysql的权限控制信息记录在mysql数据库下面的user表,db表,tables_priv表和columns_priv表中。因为这些表里面的权限控制数据要非常频繁的使用,所有mysql在启动的时候就会将里面的数据load到内存中,当磁盘上数据表的数据发生改变时,改变可以手动或者自动的flush到内存中。上述四个表按照自己的职责记录着不同的级别的权限。所以先介绍下权限的级别。
在介绍权限级别前,先复习下权限授予和回收的语法:
1.权限的授予和回收
授予: grant [权限名] on [数据库名].[表名] to '用户名'@'用户所处的主机名' identified by '用户密码'; 注:如果用户已经存在那么identified by 字段可以去除。
回收:revoke [权限名] on [数据库名].[表名] from '用户名'@'用户所处的主机名';
注意请确保你使用的当前用户有执行grant和revoke的权限。其中的参数存在如下对应的通配,表示“所有”:
权限名 通配符 all 表示所有权限
数据库名 通配符 * 表示所有数据库
表名 通配符 * 表示所有表
用户所处的主机名 通配符 * 表示任何主机
权限的授予和回收均需要用上述的命令进行,更加参数可以知道有如下的组合:
权限适用所有数据库的所有表所有列;
权限适用确定数据库的所有表所有列;
权限适用确定数据库的确定表所有列;
权限适用确定数据的确定表的确定列确定列;
上面就是四种主要级别的权限了。下面一一介绍:
2权限的级别
2.1Global level
即权限适用所有数据库的所有表所有列。命令例子:
grant select on *.* on 'hfut'@'localhost';
表示为主机名为localhost的用户hfut授予select权限,该权限适用所有数据库的所有表所有列;执行者条记录会发现在mysql数据库的user表中多了一条记录,这说明user表记录的是全局控制权限;
2.2Database Level
即权限适用确定数据库的所有表所有列。命令例子:
grant select on test.* on 'hfut'@'localhost';
表示为主机名为localhost的用户hfut授予select权限,该权限适用test数据库的所有表所有列;执行这条记录会发现在mysql数据库的db表中多了一条记录,这说明db表记录的是数据级别的权限控制信息;
2.3Table Level
即权限适用确定数据库的确定表所有列。命令例子:
grant select on test.test on 'hfut'@'localhost';
表示为主机名为localhost的用户hfut授予select权限,该权限适用test数据库的test表;执行这条记录会发现在mysql数据库的tables_priv表中多了一条记录,这说明tables_priv表记录的是表级别的权限控制信息;
2.4Column Level
即权限适用确定数据的确定表的确定列确定列。命令例子:
grant select (id,name) on test.test on 'hfut'@'localhost';
表示为主机名为localhost的用户hfut授予select权限,该权限适用test数据库的test表的id和name两列;执行这条记录会发现在mysql数据库的tables_priv表和columns_priv表中均增加了一条记录,这说明tables_priv表和columns_priv表共同完成了列级别的权限;
2.5Rountine Level
这个就不是上面的组合出来的了,这种权限是针对mysql的存储过程的,是存储的执行权限,是更为严格的权限;
好了,说明完成,这里提醒一句:如果同时设置了大级别的权限和小级别的权限,那么小级别的权限的设置是没用的;因为mysql判定权限的过程是先匹配user表,然后匹配db表,然后匹配tables_priv表,最后匹配columns_priv表,这个匹配过程中,只要有一个匹配成功那么停止匹配。
- MySQL 的权限系统
- MySQL的权限
- mysql 的权限解释
- mysql的grant权限
- mysql的权限级别
- mysql的grant权限
- mysql的grant权限
- MySQL的权限
- mysql的权限管理
- MySQL的权限
- MySQL的权限
- mysql的权限控制
- mysql的grant权限
- mysql的grant权限
- mysql 权限的问题
- mysql 的权限体系
- MySQL的权限
- MySQL的权限
- asp.net c# 连接mysql库(mysql-connection-net库)中的例子
- hdu 4340 Capturing a country
- Java与Flex学习笔记(14)----Flex中实现倒计时的效果
- ExtJS 3.4 表单控件
- 用HTML5 Canvas 实现的 时钟
- MySQL的权限
- java 判断文件夹大小
- js验证
- HDU-1233(prim写法)
- 正则表达式30分钟入门教程
- math.random与Random产生随机数的方法
- C++ premier -- 模板与泛型编程
- Oralce SQL语言常用函数(五)聚合函数
- Chrome下载文件,文件名出现乱码解决