请问SQL SERVER中如何控制读取权限

victor_armin 2011-11-17 09:57:29
小弟我是做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的集合,请问实现这个功能最好的方法是如何的?跪谢~
...全文
108 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
中国风 2011-11-17
  • 打赏
  • 举报
回复
設計一個權限庫,權限模塊設置權限.
gogodiy 2011-11-17
  • 打赏
  • 举报
回复
最简单的实现方法就是:一张部门表,包含自己所属部门ID和上级部门ID。
然后在设计权限的时候,可以设置为只要上级部门ID有权限可以看,那么该部门下属所有部门的人员都有权限可以看。基本思路就这样了。
--小F-- 2011-11-17
  • 打赏
  • 举报
回复
你这个叫做审核流 可以去找个相关的东西来看看 很多的
pengxuan 2011-11-17
  • 打赏
  • 举报
回复
这个就要用你的用户和用户所在的部门进行where条件查询了
chuanzhang5687 2011-11-17
  • 打赏
  • 举报
回复
declare @username varchar(10)
if(@username in ('A','B'))
begin
select * form tb where username = @username
end
else
select * from tb
-晴天 2011-11-17
  • 打赏
  • 举报
回复
你不告诉它这条记录只有B能读而A不能读,让SQL如何知道谁能读?!
所以,你想到的,并不是弱智的.
本课程根据讲师十多年在世界500强外企的生产环境SQL Serer数据库管理和项目实施经验倾心打造。课程系统性强,知识体系完整,覆盖90%以上的企业环境下SQL Server高可用场景,课程不仅演示详细的操作步骤,更加突出最常见的故障和问题,让学员少走“弯路”,不只是让学员学会“操作”更能让学员“操作”的规范,满满的干货分享,一些课程资料(架构图、部署规划表格等)不仅可以帮助学员掌握技能,也可以作为学员在企业生产环境实施SQL Server高可用的配置文档、操作手册等。课程的实验环境介绍:1)全部基于微软域环境和企业版SQL Server AOAG - 95%以上的企业环境都是在域环境,不介绍非域环境和标准版的SQL Server高可用性组,这的配置在企业较罕见,没有实践意义,不浪费学员时间。2)相应域环境已提前部署和配置好 - 学员导入虚拟机即可开始实验,无需从零开始搭建域环境,所有实验SQL Server均已加域,直入主题,节省大量时间。3)最新的Windows Server故障转移集群(WS2016、WS2019)和最新版本的SQL ServerSQL2017、SQL2019) -  WS2016-SQL2017与WS2019-SQL2019是目前大多数企业SQL Server高可用的主要平台,基于微软产品生命周期现在一些企业也在讲早期的AOAG向这两个版本迁移,掌握这两种组合不仅让学员学会,更能学有所用。本课程为后续SQL Server进阶课程铺垫,是通向SQL Server DBA 专家的必经之路,讲师每周答疑两次。所有课程资料包括:课程PPT、架构图、部署规划表格、各类脚本学员均可下载。     

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧