“用户‘NT AUTHORITY\ANONYMOUS LOGON’登录失败。”到 SQL Server 2005

“用户‘NT AUTHORITY\ANONYMOUS LOGON’登录失败。”到 SQL Server 2005

我正在尝试将我们拥有的旧版应用程序迁移到 Windows Server 2008 x64 和 IIS7。它是用 Classic ASP 编写的,并连接到 SQL Server 2005 数据库。

但是,当页面运行时,我收到错误:

[Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'.

我正在使用的连接字符串是:Driver=SQL Server; Server=SERVERNAME; Initial Catalog=DBNAME; 我看不出它使用匿名登录的任何理由,因为当它在我的 32 位 Win2k3 服务器上运行时,它使用 DOMAINNAME\SERVERNAME$ 访问 SQL Server。

我有以下设置。

SQL Server 2005 - 以混合模式运行。IIS7 应用程序池 - 允许 32 位应用程序设置为 True。

我还将服务器添加为 SQL Server 上的用户。

我现在已经尝试了一些方法,但我开始没有什么主意了。

答案1

我认为您在 odbc 连接中使用了错误的数据库驱动程序。MS SQL 2005 使用 SQL Native Client。

驱动程序 = SQL Native Client;UID = 用户名;PWD = 密码;服务器 = SERVERNAME;初始目录 = DBNAME;

您可以在此处下载安装程序:http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=df0ba5aa-b4bd-4705-aa0a-b477ba72a9cb

答案2

我相信您需要在连接字符串中添加一个属性,以允许 IIS7 中的应用程序池帐户在 SQL Server 上进行身份验证。见下文:

Provider=SQLNCLI;Server=myServerAddress;Database=myDataBase;Trusted_Connection=yes;

Trusted_Connection 部分将允许 IIS 使用应用程序池帐户的凭据进行连接。如果该程序在计算机帐户下运行,正如您所说,那么您在 SQL Server 上创建的登录名将起作用。

相关内容