
个人觉得提的问题范围有些大,如果只针对案例要解决这个问题很简单,只需要设置部门,个人的使用权限即可,权限都是叠加的,比如A员工只能查看A部门的工资,只需将A部门权限给a员工即可,部门隶属权限都具备了这都不是问题了.
如果是企业级系统涉及多模块及业务数据的权限控制的话,就需要设计独立的数据权限模块才能做到架构层面解决了,可对表级设置权限策略.
建议通过phpMyAdmin 来设置数据库用户的权限。phpMyAdmin 是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,让管理者可用Web接口管理MySQL数据库。
一、首先您需要在服务器上安装配置 phpMyAdmin。
安装比较复杂,详见http://faq.comsenz.com/viewnews-484
二、创建用户(如之前已经创建好用户,可以省略这一步)
点击“添加新用户”这个连接,添加一个新的数据库用户名;
三、权限设置
编辑刚刚创建的用户的权限(如下图所示)
四、重新加载授权表
修改完用户权限以后需要回到 phpMyAdmin 的首页,重新加载一下授权(如下图)即可。
一、方式一:使用视图将需要限制用户只能看到特定的几个列、设置成一个视图,然后对这个视图进行权限控制
二、方式二:使用GRANT语句
1、授予相关列的查询权限(SELECT)
在数据库db1中,登录名UserA 只能有权限查询 Employee表 里面的BusinessEntityID, NationalIDNumber, LoginID三个字段权限,不能查询其它字段
GRANT SELECT(BusinessEntityID, NationalIDNumber, LoginID) ON Employee TO UserA
2、授予相关列的修改权限(Update)
对于登录名UserB,只允许其修改 Address表 的AddressLine1,AddressLine2两个字段,其它字段不许修改
GRANT UPDATE(AddressLine1,AddressLine2) ON Address TO UserB
3.
DENY SELECT(Phone) ON T_SendSMSLog TO test 禁止某个用户查询某个表的某列
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)