代码之家  ›  专栏  ›  技术社区  ›  bytebender

无法打开登录请求的数据库“我们的数据库”。登录失败。用户“ADUser”登录失败

  •  0
  • bytebender  · 技术社区  · 15 年前

    我们正在推出我们的第一个.NET4.0实体框架应用程序,并且存在安全问题。

    1. SQL2005版本
    2. 二级6
    3. .NET 4.0版
    4. asp.netmvc 2型
    5. NTLM公司

    但是当我们把它移到生产环境中进行beta测试时,我们通过asp.net

    SqlException(0x80131904):无法打开 数据库“我们的数据库名称” 由登录请求。登录 '域\用户'。

    这两种环境之间的唯一区别是我们使用的是 Kerberos 而不是生产环境中的NTLM。 我们还有其他几个使用LinqToSql的.NET3.5站点在这两种环境下运行。

    1. 将另一个测试站点上的活动用户替换为无法确保用户设置方式没有问题的用户。-工作
    2. 从sql2005中删除并重新添加了用户-未执行任何操作

    这个问题似乎与.NET4.0有关,因为这是我们的第一个。。。

    2 回复  |  直到 15 年前
        1
  •  0
  •   Thomas    15 年前

    NTLM和Kerberos之间的区别是巨大的。使用NTLM,您可以使用Kerberos的传递式身份验证,但这是不可能的。使用Kerberos和Windows身份验证,您需要设置一个服务主体名称(简称SPN),告诉sqlserver您使用的任何IIS帐户都可以访问它。

    Understanding Kerberos and NTLM authentication in SQL Server Connections

    下面是另一篇关于设置Kerberos的文章。跳转到标题为 "Configure a service principal name for the domain user account"

        2
  •  0
  •   Anon246    15 年前

    • 您在SQL server上的连接字符串中指定的数据库是否在连接字符串中指定?

    这是导致这个问题的两个最常见的原因。Kerberos问题在sqlserver中的表现通常有点不同。

    谢谢,