0

我在通过 Windows 身份验证登录SQL Server 2000数据库时遇到问题,其中已通过 Active Directory 组授予数据库级别的访问权限,相关用户是该组的成员。

我可以通过以下方式检查用户的 AD 组成员身份: whoami /groups 并查看:

somedomain\SalesDB-RO                   Group            S-1-5-21-2172273820-3134075794-738947201-31792  Mandatory group, Enabled by default, Enabled group             
somedomain\SalesDB-RO                   Group            S-1-5-21-923798017-1667202166-518595180-7612    Mandatory group, Enabled by default, Enabled group             

由于(不知何故)Active Directory SID 历史的性质,有两个条目。

现在,我可以查看数据库(使用 SSMS,使用另一个帐户)并看到“SalesDB-RO”实际上在数据库中具有 db_datareader 权限,但用户仍然无法登录。我想知道“SalesDB-RO”组在文本上是否相同,但在 SQL Server 数据库中可能具有不同的 SID。

如何查看分配给 SQL Server 中“SalesDB-RO”组的 SID?(我个人没有系统管理员权限,但可以找人执行任何必要的命令)。

第二个问题:
在我确实拥有系统管理员权限的另一个 SQL Server (2008) 实例上,我看到 SID 的形式为:

0x0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF01234567

....而从 AD 他们是在形式:

S-1-5-21-2172273820-3134075794-738947201-31792

有没有办法获得 SID 的可比较版本?

更新

事实证明,问题在于用户是 Active Directory 组的成员,该组的数据库读取权限被拒绝。

4

1 回答 1

0

事实证明,在我的情况下,问题是用户是 Active Directory 组的成员,该组的数据库读取权限被拒绝。

更好的(与问题更相关)信息(信用@Kodak):

如何从 SQL Server 存储的 SID 获取 Active Directory 组名称?

于 2012-06-21T17:26:58.430 回答