我有一个 ASP.net(.net 4,c#)网络应用程序(后端:SQL Server 2012)。权限概念(允许每个用户查看哪些数据)在 Web 应用程序中处理。
权限来自不同的来源:
-AD 组成员资格:
- AD 组名称链接到记录的属性
-底层数据库:
-用户被分配到不同的标准
组织结构
位置结构
直接赋值
目前所有这些都在网络应用程序中处理。所以我收集了所有用户的权限,然后我在数据库中查询允许他查看的数据。
现在我需要将权限概念带到数据库级别。 目标是用户几乎可以直接查询数据库(预定义 View )(Reporting Services、Excel 等)
知道如何解决这样的问题吗?
想过加入用户对外键的权限。但这对于 AD 权限是不可能的。 或者可能创建一个 dll 并从存储过程调用此 dll。然后 View 加入存储过程。
最佳答案
你应该看看在数据库中定义角色 http://msdn.microsoft.com/en-us/library/ms188659.aspx . 然后根据您的要求授予对不同表或 View 的权限。我已经看到数据是专门从 View 中读取的。所以,这也是一种选择。
编辑:
因此,看起来您需要行级安全性。请阅读 Microsoft 的这份指南。
关于sql-server - 将权限概念引入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13718514/