【发布时间】:2017-04-21 18:45:45
【问题描述】:
我在 Windows Server 2012 R2 上安装了 SQL Server 2014,它也是一个 AD DC。当我尝试使用 SQL Server Management Studio (SSMS) 从同一本地域上的客户端桌面连接到它时,我收到以下错误消息:
The target principal name is incorrect. Cannot generate SSPI context. (Microsoft SQL Server)
因此,在关于同一问题的其他帖子之后,我在 SQL 服务器上下载了 Kerberos 配置管理器,发现 2 Misplaced SPN。 Kerberos 配置管理器提出的 SPN Script 命令如下:
SetSPN -d "MSSQLSvc/SERVERNAME.internal.domain.com" "internal\SERVERNAME$"
SetSPN -s "MSSQLSvc/SERVERNAME.internal.domain.com" "DOMAIN\SERVERNAME$"
但是当我尝试在服务器上运行 cmd 中的第一个命令(“SetSPN -d”命令)时,我收到了这个错误:
FindDomainForAccount: Call to DsGetDcNameWithAccountW failed with return value 0x0000054B
Unable to locate account SERVERNAME$
我不确定如何从这里继续前进。谷歌搜索并没有找到正确的答案。请帮忙。问题是:
1) 错位的 SPN 是罪魁祸首吗?如果有,如何改正?
2) 如果没有,我如何使用 Windows 身份验证从同一本地域上的客户端桌面连接到 SQL Server?
【问题讨论】:
-
SQL登录访问有问题吗?您在本地访问是否有问题,您 RDP 到那个 Windows 框,打开 SSMS,Windows 身份验证,打开选项将网络协议从默认更改为 tcp?
-
@Wendy 本地访问没问题。我在服务器本身上安装了 SSMS 并且可以正常工作。当我尝试在客户端 Windows 桌面上使用 SQL 登录名(用户名/密码)登录时,它只显示
Cannot connect to SERVERNAME. Login failed for user 'xxx'。当我在本地使用 SSMS 并右键单击服务器名称时,属性 -> 连接:允许远程连接到此服务器已启用。在 Sql Server 配置管理器中,SQL Server Network Configuration -> Protocals for SERVERNAME 启用了 TCP/IP ...我还应该尝试什么?谢谢! -
本地访问时,SSMS没有使用TCP连接SQL Server。 '连接到服务器',有选项>>按钮,将网络协议从默认更改为tcp。如果您能够进入。检查用户'xxx'是否具有访问权限,如果没有添加并授予权限然后尝试远程使用此用户ID访问权限。
-
@Wendy 如果我在本地启动 SSMS,我会在 Security->Logins 中看到 xxx,并且具有公共和系统管理员角色。当我单击远程 SSMS 中的选项 >> 按钮时,网络协议将
作为 only 选项(下拉菜单没有其他选择)... -
对不起,帮不了你太多。远程 SQL 和 Windows 身份验证均失败。请检查一个。 Windows 事件日志和 SQL 日志的更多信息。湾。 SQL Server 配置,在 SQL Server 网络和 SQL 本机网络下,都启用了 tcp/ip? c.这是默认 SQL Server 实例还是命名实例?
标签: sql-server kerberos sspi