我正在尝试远程连接到在工作组上运行的家庭服务器上的 SQL Server 2016 实例。我需要设置一个 SPN 来执行此操作。所有指南似乎都与为域情况设置 SPN 有关,而不是工作组。这是我为在 NT SERVICE\MSSQLSERVER(默认服务帐户)下运行的服务器 Odin 尝试的 SPN
C:\Windows\system32>setspn -A MSSQLSvc/Odin:1433 "NT SERVICE\MSSQLSERVER"
Ldap Error(0x51 -- Server Down): ldap_connect
Failed to retrieve DN for domain "" : 0x00000051
Warning: No valid targets specified, reverting to current domain.
FindDomainForAccount: Call to DsGetDcNameWithAccountW failed with return value 0x000004BC
Unable to locate account MSSQLSERVER
我以管理员身份运行 cmd 提示符,我以管理员身份登录,现在没有主意了。帐户 MSSQLSERVER 必须存在,否则 SQL 服务器将无法运行(我可以在本地连接)。
答案1
您使用的是 SQL 登录,对吗?不是 Windows 身份验证。当客户端和服务器都是域成员时,SPN 用于 Windows 身份验证 (Kerberos)。
我认为还有另一个问题阻止您连接到 SQL 服务器。可能是路由问题、防火墙、SQL 服务或防病毒软件的端口配置。尝试禁用 SQL 服务器上的 Windows 防火墙并重新连接,看看是否与防火墙有关。防病毒软件也是如此。
对于端口配置,您可以使用 SQL Server 配置管理器并运行netstat -an | find /i "1433"
命令来验证端口是否为Listening
。