小弟我是做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的集合,请问实现这个功能最好的方法是如何的?跪谢~

解决方案 »

  1.   

    你不告诉它这条记录只有B能读而A不能读,让SQL如何知道谁能读?!
    所以,你想到的,并不是弱智的.
      

  2.   

    declare @username varchar(10)
    if(@username in ('A','B'))
    begin
       select * form tb where username =  @username 
    end 
    else
    select * from tb 
      

  3.   

    这个就要用你的用户和用户所在的部门进行where条件查询了
      

  4.   

    最简单的实现方法就是:一张部门表,包含自己所属部门ID和上级部门ID。
    然后在设计权限的时候,可以设置为只要上级部门ID有权限可以看,那么该部门下属所有部门的人员都有权限可以看。基本思路就这样了。