無法連接到伺服器
伺服器:訊息 18452,層級 16,狀態 1
[Microsoft][ODBC SQL Server Driver][SQL Server]
使用者 'sa' 登入失敗。原因:未與信任 SQL Server 連接相關聯
SQL Server 執行個體設定為 僅 Windows 驗證模式,拒絕 SQL Server 驗證(如 sa 帳號)連線。
-- 檢視目前驗證模式
EXEC xp_instance_regread
N'HKEY_LOCAL_MACHINE',
N'Software\Microsoft\MSSQLServer\MSSQLServer',
N'LoginMode';
-- 返回 1 = Windows only, 2 = Mixed mode
-- 修改為混合模式
EXEC xp_instance_regwrite
N'HKEY_LOCAL_MACHINE',
N'Software\Microsoft\MSSQLServer\MSSQLServer',
N'LoginMode',
REG_DWORD, 2;
-- 之後必須重啟服務生效
即使啟用混合模式,sa 預設可能是停用狀態:
sa → 內容或 T-SQL:
ALTER LOGIN sa ENABLE;
ALTER LOGIN sa WITH PASSWORD = 'ComplexPass123!';
Express 版預設執行個體名為 SQLEXPRESS,連線字串需指定:
Server=.\SQLEXPRESS;Database=MyDB;User Id=sa;Password=xxx;
-- 或
Server=(local)\SQLEXPRESS;...
-- 使用 SQL 驗證測試連線
sqlcmd -S .\INSTANCE -U sa -P 'ComplexPass123!' -Q "SELECT @@VERSION"
-- 或 SSMS 選擇「SQL Server 驗證」輸入 sa 帳密連線
生產環境建議:保持僅 Windows 驗證,應用程式使用網域服務帳號或受控服務帳號(gMSA)連線。若必須啟用混合模式,請確保
sa使用極高複雜度密碼、定期輪換、限制連線 IP 範圍。