【发布时间】:2016-06-25 14:02:19
【问题描述】:
我们有用于生产的 MS SQL Server 2012 和 MS AD。
让我简要解释一下我们分配用户权限的概念。
对于可以访问某个应用程序的某些用户组,我们创建 AD 组并将 AD 用户分配给它。由于此应用程序需要访问其他 DB 中的数据,因此我们也将该组添加到该 DB 中,并设置对所需对象(特定对象或模式)的访问/执行权限。
由于某些人使用其他应用程序和数据库,他们也被添加到其他 AD 组。毫不奇怪,这些组也需要访问第二个数据库的一些对象。
因此,当某些用户位于几个不同的 AD 组中时,我们会遇到对数据库中相同对象具有不同访问权限的情况。当某些用户突然被拒绝访问数据库中的对象时,这会导致许多“奇怪”的行为。
我的问题是:
有什么方法可以查明某些用户使用哪些权限(通过哪个 AD 组)获得了对从应用程序触发的某些 sql 查询的访问/拒绝?
谁能解释一下 sql server 在这种环境下是如何处理权限的?
我愿意就如何以不同方式处理/设置访问但不涉及重新编程应用程序(仅限 DBA 站点)提出任何建议。
谢谢。
【问题讨论】:
标签: sql-server active-directory database-administration user-permissions database-security