2009-07-15 259 views
1

我只是遷移的開發工作站的SQL Server 2000 + ASP.NET:登錄失敗,用戶NT AUTHORITY ANONYMOUS登錄

  • FROM:的Windows XP專業版SP3與IIS 6
  • TO:Vista企業版64位與IIS 7

由於此舉,我的訪問SQL Server 2000數據庫的頁面之一是從我的ASP.NET 2.0網頁收到以下錯誤:「登錄失敗的用戶'NT AUTHORITY \ ANONYMOUS登錄」「。

我:

  • 啓用Windows身份驗證在IIS和web.config中
  • 禁用匿名身份驗證在IIS
  • 設置模擬爲驗證的用戶運行
  • 驗證了登錄用戶(在這種情況下,我)有權訪問SQL Server上的相應數據庫
  • 驗證我的登錄和模擬信息在ASP.NET頁面中是否正確盛泰User.Identity.Name和System.Security.Principal.WindowsIdentity.GetCurrent()名稱(都顯示我的用戶名)

使用的SqlConnection我的連接字符串爲「server = {SERVER_NAME};數據庫= {} DB_NAME ;集成安全性= SSPI; Trusted_Connection = True;「

爲什麼它試圖用NT AUTHORITY \ ANONYMOUS LOGIN登錄?我必須假定它是IIS7特有的一些設置或web.config條目,因爲它在遷移之前工作正常。

注意:SQL Server僅限Windows身份驗證 - 不能使用混合模式或SQL。

+0

這屬於serverfault – 2009-07-15 19:44:15

回答

1

假設SQL Server安裝在一個單獨的盒子,是一個域

您的工作站需求代表團能在Active Directory中通過憑證(「登錄憑證」),並允許模擬工作。它看起來像這是你正在嘗試根據你的其他步驟,

2

你需要在活動目錄中設置一個SPN。假設你有中介服務器上的域名服務帳戶運行SQL服務器,你需要運行在域控制器上此鏈接:爲中介服務器名稱(

setspn -A MSSQLSvc/SERVERNAME.domain.name:1433 domainname\SQLServiceAccount 

轉出SERVERNAME多數民衆贊成在訪問一個代表您的SQL 2000框),確保您使用完全限定域名(IE。Myserver.mycompany.local),然後domainname \ SQLServerAccount是您用來運行SQL服務的帳戶(IE帳戶這將代表您訪問SQL 2000框)。

如果您想了解更多詳細信息,請參閱MSDN上的一篇文章 - http://technet.microsoft.com/en-us/library/bb735885.aspx。如果遇到任何問題,請回復。

0

在SSMS中運行

EXEC master ..sp_addsrvrolemember @loginame = N'NT SERVICE \ MSSQLSERVER',@rolename = N'sysadmin'

相關問題