sql-server-2008 - SQL Server 行级安全性 - 多对多

标签 sql-server-2008 security active-directory row-level-security

我们使用的是 SQL Server 2008,并在 Active Directory (AD) 中设置了权限。核心表中的每一行只能由有权查看每一行的人员查看。我可以在每一行上设置行级安全性(每行包含一个与 AD 组对齐的角色),但是我遇到以下问题:-

  • 因为这些角色代表国家/地区,所以我有 100 个角色。此外,我有一些用户可以访问多个角色......并且用户可以访问的多个角色没有一致地分组(即存在重叠):因此角色与用户是多对多的关系

在这种情况下(为了启用灵活的模型),我的第一 react 是为每个国家/地区创建一个 AD 组,然后在数据库角色中创建分组(对每个国家/地区进行分组)。然而,这将是一项维护开销 - 例如,有许多工作人员可以访问所有组,因此当一个国家/地区上线时,会创建一个新的 AD 组,这意味着我必须请求将这些用户添加为成员新的 AD 组(以及需要将新的全局用户添加到所有组中) - 我宁愿拥有一个具有全面访问权限的全局组。

有人遇到过这样的问题吗?基本上,如果我只有非常细粒度的 AD 组,我可以在数据库角色级别中容纳多对多,但是我宁愿拥有细粒度的 AD 组(对于那些需要细粒度权限的用户)以及用于这些用户的全局 AD 组需要访问所有行的用户(我只需要添加具有全局访问权限的用户)

最佳答案

根据您的描述,如果您有大量用户需要管理,那么创建第三方管理工具或使用身份管理工具来管理您的 AD 组和相应的 SQL 行级别将是一个很好的情况安全。

至于AD组,你想到的就是我也会做的,即

  • 基于国家/地区的 100 个角色
  • 所有国家/地区有 1 个角色 => 包含所有其他 AD 国家/地区组

创建一个工具(最好是身份管理工具,如果您有的话),

  • 该工具允许您手动将用户分配到他们的国家/地区
  • 工具将国家/地区映射到相应的 AD 组(身份管理将立即提供此功能)
  • 工具将国家/地区映射到相应的 SQL 行安全性
  • 该工具定期根据 AD 组和 SQL 安全性同步国家/地区(这是为了防止系统管理员手动将用户组分配给用户,身份管理同样会开箱即用)

关于sql-server-2008 - SQL Server 行级安全性 - 多对多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14678367/

相关文章:

php - PHP 对象序列化有多安全,跨页面传递是否安全? (使用 phpXMLrpc)

powershell - 使用Powershell将电子邮件地址添加到AD安全组

asp.net - 允许 ApiController 上的匿名应用程序

sql-server-2008 - SQL Server 2008 和 HashBytes

c# - 插入当天的最后一秒

sql-server-2008 - 将 SQL 服务器备份到 Rackspace 云文件

C# 无法将用户添加到 Active Directory。它显示错误服务器上没有这样的对象

sql-server-2008 - 在 sql server 2008 中以 float 声明 N

java - 明文可以在 BCrypt 中设置或转换为盐吗?

c# - MVC/ASP.NET 中的自定义 session 处理