詳細資訊
| 產品名稱 | SQL Server |
| 事件識別碼 | 18456 |
| 事件來源 | MSSQLSERVER |
| 元件 | SQLEngine |
| 符號名稱 | 登入失敗 |
| 消息正文 | 使用者 『%.*ls』 登入失敗。%.*ls |
說明
當連線嘗試因驗證失敗(可能是因密碼或使用者名稱錯誤)而遭到拒絕時,會將類似下列的訊息傳回給用戶端:「使用者 '<user_name>' 登入失敗。」 (Microsoft SQL Server,錯誤:18456)“。
傳回給用戶端的其他資訊包括下列各項:
「使用者 '<user_name>' 登入失敗。 (.Net SqlClient 數據提供者)”
------------------------------
“伺服器名稱: <computer_name>”
“錯誤號碼:18456”
“嚴重性:14”
状态:1
“行號:65536”
也可能傳回下列訊息:
“Msg 18456,等級 14,狀態 1,伺服器 <computer_name>,第 1 行”
「使用者 』<user_name>' 登入失敗。」
其他錯誤資訊
為了提高安全性,傳回給用戶端的錯誤訊息會刻意隱藏驗證錯誤的本質。 不過,在 SQL Server 錯誤記錄檔中,對應的錯誤包含映射至驗證失敗狀況的錯誤狀態。 比較錯誤狀態與下列清單,以判斷登入失敗的原因。
| 國家 | 說明 |
|---|---|
| 1 | 錯誤資訊不可用。 此狀態通常表示您沒有權限查看錯誤詳細資訊。 如需詳細資訊,請連絡 SQL Server 系統管理員。 |
| 2 | 用戶標識碼無效。 |
| 5 | 用戶標識碼無效。 |
| 6 | 嘗試使用 Windows 登入名稱進行 SQL Server 驗證。 |
| 7 | 登入已停用,且密碼不正確。 |
| 8 | 密碼不正確。 |
| 9 | 密碼無效。 |
| 11 | 登入有效,但伺服器存取失敗。 此錯誤的一個可能原因是當 Windows 使用者以本機系統管理員群組的成員身分存取 SQL Server,但 Windows 未提供系統管理員認證時。 若要連線,請使用 [ 以系統管理員身分執行] 選項啟動連線程式,然後將 Windows 使用者新增至 SQL Server 作為特定登入。 |
| 12 | 登入是有效的登入,但伺服器存取失敗。 |
| 18 | 密碼必須變更。 |
其他錯誤狀態存在,並表示發生非預期的內部處理錯誤。
其他不尋常的可能原因
錯誤原因 嘗試使用 SQL 驗證登入失敗。伺服器僅針對 Windows 驗證進行設定。 在下列情況下可以傳回。
當伺服器設定為混合模式驗證,而 ODBC 連接使用 TCP 通訊協定,而且連線不會明確指定連接應該使用信任的連線。
當伺服器被設定為混合模式驗證時,若 ODBC 連線使用命名管道,而用戶端使用的認證是自動模擬為開啟命名管道的使用者,且連線未明確指定應使用受信任的連線。
若要解決此問題,請在 TRUSTED_CONNECTION = TRUE 連接字串中包含 。
範例
在此範例中,驗證錯誤狀態為8。 這表示密碼不正確。
| 日期 | 來源 | 訊息 |
|---|---|---|
| 2007-12-05 20:12:56.34 | 登入 | 錯誤:18456,嚴重性:14,狀態:8。 |
| 2007-12-05 20:12:56.34 | 登入 | 使用者 『<user_name>』 登入失敗。 [CLIENT: <IP 位址>] |
備註
使用 Windows 驗證模式安裝 SQL Server 時,稍後會變更為 SQL Server 和 Windows 驗證模式,一開始會停用 sa 登入。 這會導致狀態 7 錯誤:「使用者 』sa' 登入失敗」。若要啟用 sa 登入,請參閱 變更伺服器驗證模式。
使用者動作
如果您嘗試使用 SQL Server 驗證進行連線,請確認已在混合驗證模式中設定 SQL Server。
如果您嘗試使用 SQL Server 驗證進行連線,請確認 SQL Server 登入存在,而且您已正確拼字。
如果您嘗試使用 Windows 驗證進行連線,請確認您已正確登入正確的網域。
如果您的錯誤指出狀態 1,請連絡 SQL Server 系統管理員。
如果您嘗試使用系統管理員認證進行連線,請使用 [ 以系統管理員身分執行 ] 選項啟動應用程式。 連接時,將 Windows 使用者新增為個別登入。
如果 資料庫引擎 支援自主資料庫,請確認登入在移轉至自主資料庫用戶之後並未刪除。
當本地連線到 SQL Server 實例時,來自 NT AUTHORITY\NETWORK SERVICE 服務的連線必須使用電腦的完整限定網域名稱進行驗證。 如需詳細資訊,請參閱 如何:使用網路服務帳戶存取 ASP.NET 中的資源