【问题标题】:SQL Server User roles that have roles inside them内部具有角色的 SQL Server 用户角色
【发布时间】:2014-07-16 00:00:04
【问题描述】:

我知道标题可能有点混乱,但这是我能想到的最好的。 所以这是我的问题:我有一个具有许多角色的数据库,其中一些角色作为角色成员具有其他角色,因此当将用户添加到角色中时,它也会自动将该用户添加到其他角色中。

例如,如果我运行 SQL,则在我的数据库中:

exec sp_helprolemember op_ConfigDefault -- 这将为我提供 op_ConfigDefault 角色的所有成员。在这些角色中,一些成员是事实上的角色。我做了一些打印屏幕更清晰

在蓝色方块中,我的成员是角色,在红色方块中是普通用户。

在这里你可以看到上面的那些“成员”确实是角色。

我现在的问题是,有没有一种方法可以构建一个 T-SQL,以便我只能从一个也是角色的角色中获取成员?

【问题讨论】:

    标签: sql sql-server tsql roles members


    【解决方案1】:

    我已经设法找到解决方案

    SELECT DbRole = g.NAME,
        MemberName = u.NAME,
        MemberSID = u.sid
    FROM sys.database_principals u,
        sys.database_principals g,
        sys.database_role_members m
    WHERE g.NAME = /* add role name here*/
        AND g.principal_id = m.role_principal_id
        AND u.principal_id = m.member_principal_id
        AND u.NAME IN (
            SELECT NAME
            FROM sys.database_principals
            WHERE type = 'R'
            )
    ORDER BY 1, 2
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-12
      • 2011-02-17
      • 1970-01-01
      • 2017-09-10
      • 2020-06-02
      • 2021-09-13
      • 2012-02-14
      • 1970-01-01
      相关资源
      最近更新 更多