2009-12-02 207 views
2

有没有办法查看连接字符串用于连接到SQL Server?或者说,在失败的登录尝试中使用了什么字符串。如何查看连接字符串用于连接到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]

有一些审计,我可以启用或嗅出了连接字符串,所以我可以找出什么是错与分析串本身字符串的工具吗?

回答

2

不是。连接字符串只是客户端应用程序和SQL客户端库之间的事情,并且没有现成的工具可以窥探到这个紧密的地方。

但是,在你的例子中,不需要知道连接字符串。您知道连接字符串是使用集成安全性('SSPI握手'的定义),您知道它正尝试连接到记录此错误的服务器,您知道失败的原因(错误SEC_E_LOGON_DENIED),而您知道哪个客户端试图连接(10.234.222.13)。连接字符串中绝对没有任何内容可以帮助解决此问题。

你看到的错误是一个错误SSPI,特别是和Kerberos/NTLM错误,你应该使用Kerberos/NTLM工具和方法接近它。大多数(如果不是全部的话)Kerberos/NTLM问题可以使用Troubleshooting Kerberos Errors文档进行故障排除。

在你的情况,你可能会发现常见的元凶之一:

  • 服务在本地帐户下运行尝试远程连接。
  • 尝试跨非信任域边界连接
  • (最有可能)使用过期密码
+0

听起来像它可能会有所帮助。我注意到,当我从主机文件中删除一些条目时,问题消失,但我需要那些用于我的服务运行。鸡和鸡蛋的问题。也许我可以以某种方式重新配置 - 使用回送IP而不是10.234.222.13或其他东西。 – 2009-12-02 06:43:16

0

首先运行的服务,没有做到这一点的开箱一种集中的方式。

然而,这些类型的问题是争论的用于具有DAL,在那里你集中所有的连接和事务管理,与相关的错误记录沿着一个很好的一部分。

SQL事件探查器还可以给你一些信息 - 虽然可能没有足够的调试问题,它可能给你在错误的时间意义上的提示。

+0

我没有时间问题 - 它发生在我尝试打开网站时。我对代码知之甚少,我想要一个可以处理任何项目的解决方案,因此找出连接字符串的方法将非常有用。 无论如何 - 这次我已经设法通过我在其他评论中提到的好猜测来解决它。我在我的主机文件中配置了FQDN以匹配站点绑定,并使用外部接口的IP。将其修改为127.0.0.1后 - 它开始正常工作! – 2009-12-02 19:32:22