我正在尝试从 Active Directory 组在 SQL 服务器上创建用户,因为我正在使用的应用程序本身不支持 Windows 身份验证,并且依赖于在 SQL 服务器上创建的个人登录,因为应用程序级别权限是在应用程序中管理的,而不是而不是使用 SQL 角色。因此,要访问应用程序的每个用户都需要针对应用程序数据库所在的 SQL 实例创建自己的用户,以便随后可以在应用程序内为用户分配单独的权限。
我正在使用以下内容从我们指定的 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
?我有什么明显的遗漏吗?