ITPUB??ì3
12月微软Hyper-V虚拟化沙龙主题征集
ITPUB论坛 » 系统分析与UML » 怎样按记录授权?

标题: 怎样按记录授权?
离线 Arraymanplx
学习中


精华贴数 1
个人空间 0
技术积分 1102 (1671)
社区积分 118 (3204)
注册日期 2001-10-9
论坛徽章:3
ITPUB元老会员2006贡献徽章授权会员   
      

发表于 2001-12-26 18:33 
怎样按记录授权?

假使在数据库中有这样的表,(1)有的用户只能访问(select ,insert,update)自己插入的记录,(2)而有的用户可以访问(select )所有的记录,但不能修改,(3)有的可以访问(select ,insert,update)全部,也可以修改。
请问高手,应该怎样设计数据库的表,角色和视图,比较好一点,谢谢!!!


只看该作者    顶部
离线 martin0866
版主



精华贴数 0
个人空间 0
技术积分 208 (9214)
社区积分 0 (48730)
注册日期 2001-10-22
论坛徽章:1
管理团队2006纪念徽章     
      

发表于 2001-12-28 09:54 
可以建一个权限表,用户表,此表。
权限表包括ID,名称,描述,状态;
    记录:0,0级,只能访问自己插入的记录,1
                    1,1级,可以访问所有记录,但不能修改,1
                    2,2级,有的可以访问全部,也可以修改,1
                    .......
用户表包括ID,用户名,密码,对应权限ID,状态;
此表包括.......,提交人ID;
对于情况1,如果用户对应权限ID为0,并且提交人为自己,即可。
对于情况2,如果用户对应权限ID为>0,即可。
对于情况2,如果用户对应权限ID为>1,即可,等等。

个人拙见。


只看该作者    顶部
离线 szloner
初级会员



精华贴数 0
个人空间 0
技术积分 24 (46832)
社区积分 1 (33229)
注册日期 2001-11-29
论坛徽章:0
      
      

发表于 2001-12-28 15:45 
由数据库来管理

上面这位高手的权限控制要基于客户端的应用程序来实现,
我想 manplx 的意思是要问数据如何通过用户、角色、视图来
实现。实现方法如下:
建立三个用户:
A1,A2,A3
原有表T,原有用户U, 在U用户下建立两个视图:V1,V2
create view v1 as
select * from t where t.用户字段)=user;

create view v2 as
select * from t;

分别在三个用户下建立同义词:T
A1的T基于视图V1
A2,A3的T基于V2


在U用户下分配权限:
case1:grant select,update,insert on v1 to A1;
case2:grant select on v2 to A2;
Case3:grant select,update,insert on v3 to A3;

这样实现可以让用户感觉在操作同一个表名,其实是通过不同的
的视图对表进行访问的。


只看该作者    顶部
离线 scott/tiger
一般会员



精华贴数 0
个人空间 0
技术积分 232 (8361)
社区积分 12 (9759)
注册日期 2001-10-8
论坛徽章:1
授权会员     
      

发表于 2001-12-28 16:15 
赞同szloner的意见。其实,这是View的典型应用之一:权限控制


只看该作者    顶部
 
    

相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问