“用户'NT AUTHORITY ANONYMOUS LOGON'登录失败。”到SQL Server 2005
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了“用户'NT AUTHORITY ANONYMOUS LOGON'登录失败。”到SQL Server 2005相关的知识,希望对你有一定的参考价值。
我正在尝试将我们拥有的遗留应用程序迁移到Windows Server 2008 x64和IIS7。它是用Classic ASP编写的,并连接到SQL Server 2005数据库。
但是,当页面运行时,我收到错误:
[Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'NT AUTHORITYANONYMOUS LOGON'.
我正在使用的连接字符串是:Driver=SQL Server; Server=SERVERNAME; Initial Catalog=DBNAME;
我无法看到它使用匿名登录的任何原因,因为它在我的32位Win2k3服务器上运行时,它使用DOMAINNAME SERVERNAME $访问SQL Server。
我有以下设置。
SQL Server 2005 - 以混合模式运行。 IIS7应用程序池 - 允许将32位应用程序设置为True。
我还在SQL Server上添加了服务器作为用户。
我现在尝试了一些事情,我开始没有想法了。
有一些解决方案。
使用SQL身份验证,而不是SSPI。它将起作用,因为您的数据库处于混合模式。
如果由于任何原因您不会更改身份验证。
顺便说一句,NT AUTHORITYANONYMOUS LOGON
很奇怪,就像数据库服务器和应用服务器不在同一个域上一样。请检查这一点,直到进一步提供。
1)在Active Directory中创建用户 2)在IIS7上创建一个应用程序池,并为您创建的用户“身份”创建 3)授予此用户您在DB上所需的权限和角色
我想我已修好了。迁移到Win2k8意味着我需要将连接字符串驱动程序更改为SQL Native Client;。
将匿名身份验证凭据设置为您的应用程序池标识。 (默认为特定用户 - > IIS用户)。然后,您可以在连接字符串中使用可信连接,因为它现在将使用AppPoolIdentity帐户。
那么,失败的登录尝试是在“本地服务”帐户下运行的代码的典型示例,而不是(在Win2K3上有什么),它在“网络服务”帐户下运行。现在您只需要找到该设置的位置。
对于OP或未来的读者,您可以:
1)使用专门的服务帐户,如上面的Johan所建议的那样,或者
2)使用AppPoolIdentity帐户并转到“身份验证”,然后选择“Windows身份验证”并启用“ASP .NET模拟”。
如果您在#2之后仍然得到相同的结果,那么您可能会遇到Damien引用的“双跃点”问题 - 这是Web服务器可以对您进行身份验证的地方,但它不允许您将这些凭据传递到数据库以确保安全性没有使用Kerberos的原因。然后,您需要在AD中将服务器设置为“Trusted for Delegation”,并将Kerberos设置为IIS中的身份验证提供程序。这个网站有助于:http://technet.microsoft.com/en-us/library/ee675779.aspx
以上是关于“用户'NT AUTHORITY ANONYMOUS LOGON'登录失败。”到SQL Server 2005的主要内容,如果未能解决你的问题,请参考以下文章