sql-server - 连接到远程 SQL Server 数据库的经典 ASP 问题

标签 sql-server web-applications iis-7 asp-classic database-connection

我有一个经典的 ASP 应用程序,我正在尝试连接到不同服务器上的 SQL Server 2008 数据库。 ASP 应用程序由 Windows Server 2008 上的 IIS7 提供服务。

我已将网站的应用程序池更改为在特定 Windows 帐户下运行,我已验证该帐户有权访问远程服务器上的数据库。

但是,当我在浏览器中运行该应用程序时,出现以下错误:

Application Error 
Number: -2147217843 (0x80040E4D)
Source: Microsoft OLE DB Provider for SQL Server
Description: Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'. 

为什么它尝试使用 NT AUTHORITY\ANONYMOUS LOGON 进行连接? 应用程序池标识不适用于经典 ASP 代码吗? 我如何以特定用户身份进行此连接?

编辑

这是我正在使用的连接字符串:

Provider=SQLOLEDB.1;Data Source=myDbServer;Initial Catalog=myDatabase;Integrated Security=SSPI

最佳答案

对于要使用经典 ASP 的应用程序池标识的站点,您需要更改用于匿名身份验证的凭据。默认情况下,该站点将设置为使用特定用户,即 IUSR。

从站点的 IIS 区域中选择身份验证,然后选择匿名身份验证,然后选择编辑。从特定用户更改为应用程序池身份

建议使用 Windows 身份验证(集成安全性)而不是 SQL 身份验证,这样您的配置文件中就不会包含凭据,这样即使这些文件遭到泄露,您也不会失去对凭据的控制。

关于sql-server - 连接到远程 SQL Server 数据库的经典 ASP 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1139772/

相关文章:

SQL Server 将值拆分为列

sql-server - 打开 ADOQuery 时是否可以显示它的记录?

java - 将大文件(> 2GB)上传到 websphere

c# - Response.Redirect() 禁用后退按钮

sql-server - SQL Server调整顾问报告

sql - 根据特定列值删除重复行

javascript - 离线优先 Web 应用程序中的缓存无效化

ruby-on-rails - 带有 Twitter Bootstrap : still serving an old asset 的 Rails

iis - 无法安装 Powershell 管理单元

asp.net - 在ASP.NET + WCF下长时间运行的线程进程