我正在使用以下命令从我们指定的Active Directory组中读取用户列表:
exec master..xp_logininfo 'domain\groupname', 'members'
这将返回类似于以下内容的输出:account name type privilege mapped login name permission path
DOMAIN\USER user user DOMAIN\USER DOMAIN\GROUPNAME
大多数情况下,此列表中返回的用户可以在SQL实例上创建而不会出现任何问题。我首先使用sp_grantlogin
创建这些用户作为SQL账户,然后再允许每个新登录账户访问应用程序数据库。但是,仍有少量用户被报告为不存在。运行sp_grantlogin
时会导致以下错误;
Msg 15401, Level 11, State 1, Procedure sp_grantlogin, Line 49
Windows NT user or group 'DOMAIN\USER' not found. Check the name again.
显然,在上述错误消息中,我已删除了实际的用户名。为什么xp_logininfo
会返回一个不能用sp_grantlogin
创建的用户呢?我是否遗漏了任何明显的东西?