2

我们使用SQL Server 2008和有我们的权限活动目录(AD)的设置。核心表中的每一行只能由有权查看每一行的人查看。我不能对每行设置的行级安全性(每行包含一个单一的角色将各行与AD组),但是,我有以下问题: -SQL Server行级安全性 - 多对多

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

为了实现灵活的模型,我的第一个直觉是在每个国家创建一个AD组,然后在数据库角色中创建分组(将每个国家分组)。然而,这将成为维护开销 - 例如,有许多员工可以访问所有组,因此当一个国家上线时,将创建一个新的AD组,这意味着我将不得不请求这些用户作为成员添加到新的AD团队(以及一个新的全球用户需要被添加到所有团体中) - 我宁愿有一个可以全面访问的全球团体。

有没有人碰到这种问题。基本上,如果我只有非常精细的AD组,我基本上可以容纳数据库角色级别的多对多,但是我宁可例如拥有精细的AD组(对于那些需要精细权限的用户)以及针对这些用户的全局AD组需要访问的所有行(即我只需要添加用户,谁拥有全球访问)用户

回答

1

我完成什么了做是: -

  • 创建每个国家数据库组(约100)
  • 创建每个分组的数据库组(全球,欧洲,亚太地区,拉丁美洲,北美,英国等)
  • 创建包含所需级别用户的AD组(仅需要12个)
  • 将AD组添加为相应数据库角色的成员
  • 在各个国家和组之间创建数据库角色父子关系;例如。英国在欧洲(注意多对多这里允许)
  • 在组创建组数据库角色父子关系(注意多对多这里允许)

的几个注意事项: -

  • 每个数据库角色添加这里需要一个数据库用户
  • 当数据库角色关系创建的所有相关的数据库角色和AD组也相互
  • 现在我能在AD添加用户的关系根据不同的需要组级别或单个国家AD组级别
  • 数据库角色和任何关系脚本
  • 的IS_MEMBER条款是在单个国家层面
+0

你是什么意思与“创建一个数据库组“?创建一个数据库**角色**? –

2

根据你所描述的,如果你有大量的用户来管理的,这将是一个良好的局面创造第三方管理工具或使用Identity Management工具来管理您的AD组以及相应的SQL行级安全性。

对于AD组,你以为是我会做同样的,即

  • 100角色的国家基地为所有国家=>包含所有其他AD国家集团

创建工具(理想的身份管理工具,如果你有一个到位)

  • 1的作用,

    • 工具允许你手动将用户分配到他们的国家
    • 工具的国家映射到其对应的AD组(我牙齿管理将有这个开箱)
    • 工具将国家映射到其对应的SQL行安全
    • 工具定期同步国家对AD组和SQL安全性(这是为了防止System Admin手动将用户组分配给用户再次身份管理将有这个箱子外面)