尝试使用JDBC连接连接到SQL Server 2005时出现以下错误。
Error: 17806, Severity: 20, State: 2.
Logon SSPI handshake failed with error code 0x8009030c while establishing
a connection with integrated security; the connection has been
closed. [CLIENT: 127.0.0.1]
Logon Error: 18452, Severity: 14, State: 1.
Logon Login failed for user ''. The user is not associated with a trusted
SQL Server connection. [CLIENT: 127.0.0.1]
我的连接网址:
jdbc:sqlserver://LOCALHOST:1433;DatabaseName=master;integratedSecurity=true
至少对我来说,这个问题的关键是与SQL Server的连接是通过环回接口(127.0.0.1)进行的。我有相同的症状,并在this blog post找到了答案。
总结一下:发生了一次环回检查,导致通过环回适配器的可信连接失败。可以通过添加注册表项来删除此检查,如下所示:
我做了这个改动后重新启动,但是你可能会发现这没有必要。在此注册表更改生效后,我可以通过环回适配器建立可信连接。
感谢Blackhawk Consulting Blog指出我在这个问题上的正确方向。
我也有这个问题,原因很简单:我的域用户的密码已过期,因此凭据已被撤销。
事实上,我还打开了SQL Management Studio,所以每隔2-3分钟就会产生这样的错误,直到我更改了域密码。
与此0x8009030c代码有相同的确切消息。
在我的情况下,用户无法从网络访问sql计算机,我有一个失败的审核消息,表明(我认为在其他情况下也会发生相同的消息)。
转至:本地安全策略 - >安全设置 - >本地策略 - >用户权限分配 - >从网络访问此计算机 - >添加用户
它解决了这个问题
使用Microsoft的err.exe
C:\>err 0x8009030c
# for hex 0x8009030c / decimal -2146893044 :
SEC_E_LOGON_DENIED winerror.h
# The logon attempt failed
# 1 matches found for "0x8009030c"
DC会因许多不同原因拒绝登录,包括DC的间歇性连接故障。
另一个原因可能是帐户被锁定。我们有这个是由于一个流氓服务每隔半小时用错误的密码运行。该帐户是一个服务帐户,并设置为在发生这种情况几分钟后自行解锁,因此很难追踪。