7 个答案:
答案 0 :(得分:4)
这只表示用户不在Administrator组中。如果您的问题与我的问题类似,您的Active Directory位于不同的虚拟机上,而您的SQL Server位于另一个虚拟机上。您已将Active Directory域加入SQL Server虚拟机,然后必须在SQL Server虚拟机上执行以下操作。
导航至工具 - > 计算机管理。
窗口打开,展开系统工具 - > 本地用户和群组。
点击群组,您会看到右侧的群组列表
窗口的一栏。
双击管理员,会打开一个新窗口,您会发现链接的用户不在此处。
点击添加,系统会打开新窗口。在这里,您可以选择更改
您所在域的位置。
单击高级,将打开登录提示,只需使用管理员虚拟机帐户登录。
点击立即查找,包含所有字段。在显示的用户列表中,双击从Active Directory导入的用户,然后单击确定。
醇>
答案 1 :(得分:1)
我可以在Windows 7中向您提供我的建议,尽管它可能不相关。
我遇到的问题是我在Windows界面中重命名了用户帐户。该名称在Windows中正确显示,我使用新名称登录。但在幕后,它仍然使用SQL Server正在寻找的旧名称。
在我最终解决之前,我一直在努力解决这个问题!
答案 2 :(得分:1)
我还遇到了以下用户的错误:
在AD中创建
授予了一些SQL权限
在AD中重命名
醇>
然后我尝试将这个新的,重命名的用户帐户名添加到同一服务器/数据库,错误消息15401,级别11,状态1,过程sp_grantlogin,第49行出现。
SELECT name FROM syslogins WHERE sid = SUSER_SID ('YourDomain\YourLogin')
它回来了
您的域\ OldLogin
执行后
exec sp_revokelogin'YourDomain \ OldLogin'
问题得到修复,sp_grantlogin现在可以正常运行。
PS作为另一种测试方法我建议从另一台服务器远程运行sp_grantlogin。它可能会成功。
答案 3 :(得分:1)
在使用sp_grantlogin之前,您是否更改了登录名的大小写?
如果您具有区分大小写的服务器排序规则,那么AD用户的情况将在完全正确的情况下指定。
您可以通过执行以下操作找到服务器排序规则:
select serverproperty('collation')
如果您确实具有区分大小写的服务器排序规则,并且您没有弄乱案例,则可能与xp_logininfo返回的内容以及AD中的实际案例不匹配。在这种情况下,请尝试使用案例的变体创建用户。
如果这些都不适用,请查看该帐户。它是禁用的,你可以用它登录等等。如果suser_sid()返回null,那么必然存在某种问题。
答案 4 :(得分:1)
我有一个非常相似的案例,相同的错误代码15401,但在这种情况下,我正在做的是将域中的用户添加到我拥有SQL的服务器中的一个组中;所以然后只需将组添加到具有相同ROLE的SQL引擎。
USE [master]
GO
CREATE LOGIN [localhost\Administrators] FROM WINDOWS WITH DEFAULT_DATABASE=[master]
Msg 15401, Level 16, State 1, Line 3
Windows NT user or group 'localhost\Administrators' not found. Check the name again.
我发现了问题,所以解决方案是:
USE [master]
GO
CREATE LOGIN [BUILTIN\Administrators] FROM WINDOWS WITH DEFAULT_DATABASE=[master]
GO
ALTER SERVER ROLE [sysadmin] ADD MEMBER [BUILTIN\Administrators]
GO
Command(s) completed successfully.
我相信这可以减少登录帐户的数量,并且可以为SQL服务器中的角色分配更易于管理的用户数。
答案 5 :(得分:0)
我的问题是登录的长度。在Domain\User语法中,Windows使用所谓的Windows 2000以前的语法。该语法将用户名的长度限制为20个字符。您必须将用户名截断为前20个字符,然后才能正常工作,如下所示:
Domain\Abcdefghijklmnopqrstuvwxyz
成为
Domain\Abcdefghijklmnopqrst
答案 6 :(得分:0)
如果您使用的是非英语语言,或者在您的计算机上使用过非英语语言,则可能需要本地化用户详细信息&#39 ;重新尝试使用。
E.g。瑞典机器上的[NT AUTHORITY\Network Service]为[NT INSTANS\Nätverkstjänst]。
花了好几个小时试图找出为什么BUILTIN\,NT AUTHORITY\,\等没有效果。