【问题标题】:Sql Connection fails when using Integrated Security on IIS applications在 IIS 应用程序上使用集成安全性时,Sql 连接失败
【发布时间】:2012-11-10 19:54:41
【问题描述】:

在我的 IIS 7.0 上的 Web 应用程序中,我想与我的用户被授予 Windows 身份验证权限的 Sql 数据库服务器建立连接。 (集成安全=SSPI)

用户 'DOMAIN\COMPUTER_NAME$' 登录失败,但是我仍然可以通过 Sql Server Management Studio 的连接窗口(使用 DOMAIN\USER_NAME)连接到数据库。

如何通过我的 Web 应用程序连接到 Sql Server?

【问题讨论】:

  • SSMS 是单跳(本地电脑 -> 数据库)。 NTLM 或 Kerberos 可以进行单跳。通过 Web 应用程序连接是双跳(本地 pc -> Web 服务器 -> 数据库)。如果未启用 Kerberos 委派,您将无法进行双跳。这是相当复杂的,但如果你能正确配置它,这是值得的。

标签: sql-server authentication iis connection-string


【解决方案1】:

我找到了解决办法。

在 IIS 上,打开应用程序池设置。

对于身份选项,选择“自定义帐户”。

输入您的用户名 (DOMAIN\USERNAME) 和密码。

完成了。

【讨论】:

  • 这个应用程序池在哪里?
  • 谢谢!!!!经过几个小时的努力 - 这做到了!许多其他问题的解决方案要求将身份更改为“ApplicationPoolIdentity”,所以这就是它的设置。再次感谢!
  • @VasilValchev 它在 IIS 中的服务器名称下
【解决方案2】:

我的问题是我必须为 SQL Server 中的应用程序池帐户分配 db_owner 角色。我觉得许可太多了,但这是唯一有效的方法。我的书说要给它 db_datareader 和 db_datawriter 角色,但这没有用。

我在同一台计算机上使用带有 Windows 身份验证的 SQL Server、带有 IIS 的 Windows 7 Home Premium。

也许其他人会搜索这个问题并发现我的回答很有用。

【讨论】:

    【解决方案3】:

    能够连接到数据库本身就是一种特权

    您可能仍需要执行类似的操作来授予 IIS 服务帐户访问权限

    USE [<database name>]
    
    GRANT CONNECT TO '<DOMAIN\COMPUTER_NAME$>'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-27
      • 2012-10-25
      • 2011-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多