mysql 权限控制_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 1994 | 回复: 0   主题: mysql 权限控制        下一篇 
gunrose
注册用户
等级:新兵
经验:36
发帖:79
精华:0
注册:2011-7-21
状态:离线
发送短消息息给gunrose 加好友    发送短消息息给gunrose 发消息
发表于: IP:您无权察看 2015-6-19 11:27:22 | [全部帖] [楼主帖] 楼主

mysql权限分以下几个级别

服务器---》数据库级别----》表级别,函数级别,视图级别----》列级别
一个用户可以对每一个级别独立拥有权限。

对mysql的权限控制可以用可以使用两种方法:
1.使用navicat for mysql  
2.直接修改mysql库中的系统表

不管使用哪种方式修改权限 ,都必须重新执行一下
flush PRIVILEGES ,刷新一下

对mysql 权限控制主要在以下几张表中 
procs_priv: 用户对函数过程的权限控制
tables_priv:用户对表权限的控制
mysql.db:用户对db权限的控制
mysql.`user`:用户对服务器权限的控制
mysql.`host`:指定一台主机/IP 对DB的权限的控制
columns_priv:用户对列权限的控制 ,该权限生效的前提是是 ,必须对表具有查询权限

flush privileges -- 重载系统权限表,使权限生效


值得注意的是
mysql.`user` 表中User,password 最好不为空,
mysql.`db`  该表中的user字段不要为空 
否则会对后期的权限控制造成影响,对服务器也不安全

一个用户可以只对服务器拥有权限,也可以只对数据库拥有权限,又可以只对表拥有权限。但是对列单独拥有权限的时候,必须对该列所在的表有查询权限。

例如:User01 对Table01没有任何权限 ,但是对table01下的列有权限,这个权限是不会起到任何作用的。要对user01授予table01查询权限, User01对列的权限才能起到作用

在mysql数据库中,权限的设置只有授予,或是收回,没有拒绝这个概念,没有授予并不代表拒绝,所以在不同级别下对同一对象的不同权限,是取集合的 。

例如:User02对DB01只拥有查询权限,又对User02赋予DB01的Table01赋予更新权限,此时User02对DB01拥有查询权限并且对Table01拥有更新权限

在同一个级别被赋予了不同权限,取最小权限。

--转自 北京联动北方科技有限公司




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论