【问题标题】:authentication to sql 2005 using domain account from ASP使用来自 ASP 的域帐户对 sql 2005 进行身份验证
【发布时间】:2009-09-23 17:00:40
【问题描述】:

我似乎无法使用 Windows 帐户从我的 ASP 页面访问我的数据库。 这是我的连接字符串: PROVIDER=SQLOLEDB;DATA SOURCE=NHA-SQL-I0;UID=DOMAIN\NHA-svcRequestForm;PWD=password;DATABASE=RequestForms

我得到了经典: Microsoft OLE DB Provider for SQL Server (0x80040E4D) 用户“NIRHB\NHA-svcRequestForm”登录失败。

我使用的任何域帐户都会出现这种情况。使用 SQL 帐户可以正常工作。 知道我缺少什么设置/配置吗?

谢谢

【问题讨论】:

    标签: sql-server-2005 authentication asp-classic ado


    【解决方案1】:

    该类型的连接字符串用于 SQL 帐户;您实际上是在尝试以名为“DOMAIN\NHA-svcRequestForm”的 SQL 用户身份进行连接。

    试试这样的:

    PROVIDER=SQLOLEDB;DATA SOURCE=NHA-SQL-I0;DATABASE=RequestForms;Trusted_Connection=YES
    

    并且任何试图连接到数据库的应用程序都必须以域用户的身份运行。这意味着应用程序池的标识必须设置为您的域用户(如果这是 IIS 中的 Web 应用程序),或者服务标识必须是域用户(如果是 Windows 服务)。

    【讨论】:

    • 好的,所以我已将应用程序池设置为使用“DOMAIN\NHA-svcRequestForm”作为身份,但现在我在尝试加载页面时不断收到“服务不可用”错误。 .. 验证用户名和密码是否正确。如您在上面详述的那样添加了连接字符串,但不行!知道有什么问题吗?我习惯了比“服务不可用”更详细的消息...
    • 尝试将该用户添加到服务器上的 IIS_WPG 组。充当工作进程身份的帐户需要某些权限才能正常运行。
    【解决方案2】:

    在连接字符串中指定用户名和密码仅适用于 SQL 身份验证。

    对于集成身份验证(即使用“域帐户”),您必须指定 Integrated Security=SSPI。您不能显式指定用户名,SQL 将验证运行连接进程的帐户(即 ASP 帐户)。

    如果您想对连接到您网站的域用户进行身份验证,您必须在您的应用程序池中启用模拟并启用约束委派。见How To: Use Protocol Transition and Constrained Delegation in ASP.NET 2.0

    【讨论】:

    【解决方案3】:

    查看http://www.connectionstrings.com/sql-server-2005,他们拥有所有连接字符串以及如何使用受信任的连接

    【讨论】:

      猜你喜欢
      • 2013-07-07
      • 1970-01-01
      • 2016-06-04
      • 1970-01-01
      • 1970-01-01
      • 2020-06-24
      • 1970-01-01
      • 2021-02-08
      • 1970-01-01
      相关资源
      最近更新 更多