【发布时间】:2009-08-22 03:06:57
【问题描述】:
我有一个在 Windows 2003 上运行的 ASP.NET 应用程序,它需要与驻留在大型机上的 DB2 数据库进行通信。我们在服务器上安装了 DB2 Client 驱动程序 v9.5,以便应用程序可以执行连接并使用数据库。连接数据库的连接字符串包含用户名和密码,不是可信连接。
明确地说,我们使用的是 DB2 .NET 提供程序,而不是 OLE DB、ODBC 等。
我们注意到,当 ASP.NET 应用程序尝试与 DB2 建立第一个连接时,需要很长时间,大约 20 秒。在与我们的一位常驻 DBA 交谈后,他们说这可能是因为 DB2 驱动程序正试图针对 Active Directory 对用于连接数据库的用户帐户进行身份验证。
他们对此的解决方案是在 Win2003 服务器上创建一个本地用户帐户,其名称与用于建立连接的用户帐户名称相同。本地用户帐户不必是任何 acl 组的成员,它可以被禁用。
我尝试了这个解决方案,令我惊讶的是,它确实有效。连接是在几毫秒内完成的。我担心的是这个“特性”似乎是 DB2 驱动程序中的一个缺陷,而且这个驱动程序的任何新版本实际上都可能阻止它再次工作。
有谁知道我们可以设置的 DB2 驱动程序中是否有一个实际设置,因此它不会尝试使用 Active Directory 进行身份验证?使用该设置,而不是依赖在我看来,他们的身份验证算法中的缺陷,我会感觉更自在。
谢谢
顺便说一句,在服务器故障上也提出了同样的问题,但是,没有人能够在那里回答。
【问题讨论】: