在 SQL Server 2008 中創建 SQL Server 驗證登錄名後,連接提示 錯誤 18456: Login failed for user 'xxx'。常見原因:**默認數據庫未設置、登錄名未映射用戶、認證模式未切換、或密碼策略導致鎖定**。
master 或業務庫)。db_owner / db_datareader / db_datawriter 等。1433 (或自定義)。| State | 含義 |
|---|---|
| 1 | 錯誤信息通用,無具體含義 |
| 2, 5 | 用戶 ID 無效 / 登錄名不存在 |
| 6 | 嘗試使用 Windows 登錄名進行 SQL 驗證 |
| 7 | 登錄被禁用 / 密碼錯誤 |
| 8 | 密碼錯誤 |
| 9 | 密碼無效 (過期/不符合策略) |
| 11, 12 | Windows 驗證失敗 / 域控問題 |
| 18 | 密碼過期需修改 |
-- 1. 確認認證模式 (需重啟)
EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE',
N'Software\Microsoft\MSSQLServer\MSSQLServer',
N'LoginMode', REG_DWORD, 2; -- 2 = 混合模式
-- 2. 創建登錄並映射用戶
CREATE LOGIN [new_user] WITH PASSWORD = 'StrongP@ssw0rd',
DEFAULT_DATABASE = [master],
CHECK_EXPIRATION = OFF, CHECK_POLICY = OFF;
USE [YourDB];
CREATE USER [new_user] FOR LOGIN [new_user];
ALTER ROLE [db_owner] ADD MEMBER [new_user];