小弟我是做Domino开发的,在Domino中有一个东西叫读者域,可以用来控制一条记录有哪些人可以读。
现在因为业务的需要,要将一部分的数据存入SQL SERVER,实话实说,小弟我就会一些简单的update,insert,对于SQL SERVER的理解也不是太深,select的时候,一般也就是where一下,但是现在这些数据是要控制一下读取的权限的,比如用户A可以读到一些记录,用户B是另一些,我想SQL SERVER应该不会是让我where一个字段里是否含有用户A的名字这么弱智,但想了想又不知道怎么实现,特别是怀疑因为自己理解不深,导致思路都是不对的,所以特来求教。
要实现的就是当不同的用户搜索的时候,可以控制不同的用户搜索的结果是不一样的,举个例子,比如这是考勤记录,那A部门的领导,应该阅读到A部门的,B部门的领导应该查询到B部门的,A和B都属于一个更高级的C部门,那C部门的领导应该能看到A和B的集合,请问实现这个功能最好的方法是如何的?跪谢~
现在因为业务的需要,要将一部分的数据存入SQL SERVER,实话实说,小弟我就会一些简单的update,insert,对于SQL SERVER的理解也不是太深,select的时候,一般也就是where一下,但是现在这些数据是要控制一下读取的权限的,比如用户A可以读到一些记录,用户B是另一些,我想SQL SERVER应该不会是让我where一个字段里是否含有用户A的名字这么弱智,但想了想又不知道怎么实现,特别是怀疑因为自己理解不深,导致思路都是不对的,所以特来求教。
要实现的就是当不同的用户搜索的时候,可以控制不同的用户搜索的结果是不一样的,举个例子,比如这是考勤记录,那A部门的领导,应该阅读到A部门的,B部门的领导应该查询到B部门的,A和B都属于一个更高级的C部门,那C部门的领导应该能看到A和B的集合,请问实现这个功能最好的方法是如何的?跪谢~
所以,你想到的,并不是弱智的.
if(@username in ('A','B'))
begin
select * form tb where username = @username
end
else
select * from tb
然后在设计权限的时候,可以设置为只要上级部门ID有权限可以看,那么该部门下属所有部门的人员都有权限可以看。基本思路就这样了。