IIS 記錄到 SQL Server 會以空白的使用者名稱和密碼失敗

重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。

按一下這裡查看此文章的英文版本:149398
本文已封存。本文係以「現狀」提供且不會再更新。
我們強烈建議所有使用者都升級到 Microsoft 網際網路資訊服務 (IIS) 6.0 版 Microsoft Windows Server 2003 上執行。 IIS 6.0 能大幅提升網頁基礎結構的安全性。如需有關 IIS 與安全性相關的主題請造訪下列的 Microsoft Web 網站:
徵狀
如果您使用 [IIS 服務內容記錄] 對話方塊,而且您選取 [記錄] 來 SQL/ODBC 資料庫] 選項,您已輸入正確的資料來源名稱和表格。然而,輸入使用者名稱和密碼時它們被取代的空白再次開啟該對話方塊時。

SQL Server 記錄檔會記錄下列:
失敗狀況-登入失敗,因為沒有有效的使用者帳戶。

伺服器將會報告下列錯誤:
ODBC 報告時發生錯誤。資料來源名稱 「 dsn"可能不正確。
檢查伺服器的事件日誌以取得詳細資料。

伺服器的事件記錄檔指出 SQL Server 拒絕交易,因為它不定義為有效的使用者。
發生的原因
這被因為由不適當的組態的 [Microsoft SQL Server 登入安全性模式用於與 IIS。如果 SQL Server 登入安全性模式設定為 Windows NT 整合式選項,SQL Server 會使用 Windows NT 到 SQL Server 允許所有連線和只信任的連線的驗證機制。

SQL Server 永遠忽略登入名稱和資料程式庫或開放式資料庫連接 (ODBC) 的用戶端應用程式登入要求中提交的 SQL Server 密碼。網路使用者指派給使用者層級權限到 SQL Server 登入使用他們的網路使用者名稱或預設登入識別碼 (如果在 syslogins 中找不到網路使用者名稱)。網路使用者名稱指派系統管理員層級權限登入為 SA。使用這個選項僅具名的管道或多重通訊協定的用戶端支援。如果安裝額外的網路程式庫則無法使用此選項。
其他可行方案
如果要解決這個問題將 [登入安全性模式] 設定成 [混合]。在此模式中 SQL Server 會允許受信任和 nontrusted 連線。

受信任的 (具名的管道或 multi-protocol) 的 SQL Server 的連線會檢查所指定的用戶端資料程式庫或 ODBC 應用程式所要求的登入名稱。如果這個登入名稱符合使用者的網路使用者名稱或登入名稱是空值或空白空格,SQL Server 首先會嘗試 Windows NT 整合式登入規則。如果這個命令失敗 SQL Server 會使用一般的規則。如果要求的登入名稱是任何其他值,使用者必須提供正確的 SQL Server 密碼,而 SQL Server 處理登入使用 Microsoft SQL Server 說明檔案中所描述的一般規則。

注意: 從 nontrusted 連線的所有登入要求會處理使用標準安全性規則。

警告:本文為自動翻譯

內容

文章識別碼:149398 - 最後檢閱時間:03/01/2014 02:57:14 - 修訂: 3.2

Microsoft Internet Information Server 1.0, Microsoft Internet Information Server 2.0, Microsoft Internet Information Server 3.0, Microsoft Internet Information Server 4.0

  • kbnosurvey kbarchive kbmt kbprb KB149398 KbMtzh
意見反應