我有一个奇怪的情况:
AD 用户帐户登录到 SQL Server 2008 数据库,但没有为该用户分配任何角色。
同一个数据库有一个具有数据读取器/数据写入角色的 AD 组的登录名。
AD 用户是 AD 组的成员。
看起来好像只使用了用户权限。他无法对数据库执行任何操作。
这对我来说根本没有意义。
我假设所有角色(来自用户和组)的总和将生效。
因为我不是真正的 SQL Server 专家,所以我无法解释这一点。有人可以阐明用户和组的派生权限如何交互吗?
PS 该用户多年来一直是该 AD 组的成员。这不是最近添加到 AD 组未在 AD 中同步的情况。
我重现了你的情况。我创建了以下项目:
然后,我使用 Windows 登录名 DOMAIN\USER 查询了 TEST 数据库。因为 DOMAIN\USER 也是 DOMAIN\GROUP 的成员,所以允许用户从 TEST 数据库中的所有表中进行选择。
您写的是 DOMAIN\USER 无法选择任何数据。正确的?
您在数据库级别有任何孤立的用户吗?请按照以下步骤进行检查。
exec sp_change_users_login 'Report'
修理:
在您的数据库的同一查询窗口中执行以下命令
exec sp_change_users_login 'Update_one', '<DATABASE USER>', '<SQL LOGIN>'
例如,如果您的数据库是 YOUR_DB,SQL 登录(SQL Server 级别)是 YOUR_SQL_LOGIN,您要重新链接的数据库用户是 YOUR_DB_USR,则命令为:
USE YOUR_DB GO exec sp_change_users_login 'Update_one', 'YOUR_DB_USR', 'YOUR_SQL_LOGIN'
如果一切正常并且您没有任何孤立用户,请尝试检查相关数据库用户的权限。
我希望这能给你一些关于检查什么的想法。