有没有办法查看用于连接SQL Server的连接字符串?或者更确切地说,在失败的登录尝试中使用了什么字符串。
我经常处理复杂的系统,在这些系统中,我看到一些服务无法登录SQL导致的故障。我猜测连接字符串可能是错误的,但由于我无法看到它是什么,我经常有问题找出实际上有什么问题连接,以便能够重新配置并修复它。
日志中的错误就是这样说的 2009-12-01 20:16:31.05与集成安全性建立连接时,登录SSPI握手失败,错误代码为0x8009030c;连接已关闭。 [客户:10.124.172.65] 2009-12-01 20:16:31.06登录错误:18452,严重性:14,状态:1。 2009-12-01 20:16:31.06登录登录失败登录来自不受信任的域,不能与Windows身份验证一起使用。 [客户:10.234.222.13]
是否有我可以启用的审计或工具来嗅出连接字符串,以便通过分析字符串本身来弄清楚字符串有什么问题?
答案 0 :(得分:2)
不是真的。连接字符串只是客户端应用程序和SQL客户端库之间的问题,并且没有开箱即用的工具可以窥探这个紧张的位置。
但是,在您的示例中,无需知道连接字符串。您知道连接字符串使用的是集成安全性(根据定义,'SSPI握手'),您知道它正在尝试连接到记录了此错误的服务器,您知道失败的原因(错误SEC_E_LOGON_DENIED),并且您知道哪个客户端试图连接(10.234.222.13)。连接字符串中没有任何内容可以帮助解决此问题。
您看到的错误是SSPI错误,特别是Kerberos / NTLM错误,您应该使用Kerberos / NTLM工具和方法来处理它。大多数(如果不是全部)Kerberos / NTLM问题可以使用Troubleshooting Kerberos Errors文档进行故障排除。
在你的情况下,你可能会发现一个常见的罪魁祸首:
答案 1 :(得分:0)
首先,没有集中的方法来开箱即用。
但是,这些类型的问题是使用DAL的一个很好的部分,您可以集中所有连接和事务管理,以及相关的错误记录。
SQL事件探查器也可能会给你一些信息 - 虽然可能还不足以调试问题,但它可能会给你一个错误时间的提示。