【问题标题】:User permissions in sql server DB assigned from AD groups从 AD 组分配的 sql server 数据库中的用户权限
【发布时间】: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


    【解决方案1】:

    假设您是管理员,您可以在模拟相关用户时查看sys.login_tokensys.user_tokensys.fn_my_permissions() 以获得一些想法。比如:

    execute as login='yourDom\User1';
    select * from sys.login_token;
    select * from sys.user_token;
    select * from sys.fn_my_permission('dbo.someObject', 'OBJECT');
    revert;
    

    【讨论】:

    • 感谢您的回答本。我一定会调查的。据我所知,我需要大量的挖掘。但是你给了我一个很好的方向。就 fn_my_permission 而言,函数的名称末尾缺少“s”。
    • 模拟是否对仅通过 AD 组添加到 SQL Server 的用户起作用?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-30
    • 2014-03-01
    • 1970-01-01
    • 2012-03-29
    • 2013-09-14
    • 1970-01-01
    • 2011-10-05
    相关资源
    最近更新 更多