在我的网站中,我正在使用“Windows 身份验证模式”访问我的 sqlserver 数据库。当我使用 Visual Studio 运行我的网站时,一切正常。但是当我在 IIS 上托管我的网站时,每次都会出现“数据库登录失败”的错误消息。
用户“HAL\IUSR_HAL”登录失败。(HAL 是我的网络服务器的名称)
我应该对数据库属性进行一些修改,以便我可以通过 IIS 登录到数据库吗?
在我的网站中,我正在使用“Windows 身份验证模式”访问我的 sqlserver 数据库。当我使用 Visual Studio 运行我的网站时,一切正常。但是当我在 IIS 上托管我的网站时,每次都会出现“数据库登录失败”的错误消息。
用户“HAL\IUSR_HAL”登录失败。(HAL 是我的网络服务器的名称)
我应该对数据库属性进行一些修改,以便我可以通过 IIS 登录到数据库吗?
如果您在 IIS 中使用匿名访问,则需要在连接字符串中为有效的 sql 用户提供用户 ID 和密码。
经过一番研究,我得到了这个问题的答案。
要通过运行在 IIS 上的网站访问数据库,需要对 IIS 的 IUSR 帐户和 ASPNET 帐户进行身份验证并授权给 sqlserver。
(ASPNET账号是与IIS关联的dotnet框架的账号,用于处理asp.net页面。)
去做这个:
打开 Sqlserver 管理工作室。去安全。然后右键单击登录并选择“新登录”。在登录名上按“搜索”。然后点击“高级”按钮。然后按“立即查找”按钮。然后从出现的列表中选择上面提到的两个帐户。(一次一个)然后按确定。选择登录名后,转到它的“用户映射”选项。然后从那里选择数据库并检查所需的权限。
现在你已经完成了一切。按确定。
您可以从您的网站访问数据库。
在您的 web.config 文件中查找
<system.web>
并添加:
<identity impersonate="true" />