前言
在維護 SQL Server 數據庫時,賬號密碼策略問題是一個常見的困擾。今天在 SQL Server 2008 上創建新賬號時遇到了一個典型的錯誤:
消息 15118,級別 16,狀態 1,第 1 行 密碼有效性驗證失敗。該密碼不夠復雜,不符合 Windows 策略要求。

本文將詳細介紹該問題的排查過程和解決方案。
問題分析
SQL Server 的密碼策略并非獨立存在,而是依賴于 Windows 操作系統的本地安全策略。當創建賬號時出現密碼復雜度錯誤,需要檢查系統級別的安全設置。
解決步驟
1. 檢查本地安全策略
打開本地安全策略管理器:服務器管理器 → 本地服務器 → 工具 → 本地安全策略

2. 查看密碼策略設置
導航至密碼策略:安全設置 → 賬戶策略 → 密碼策略

3. 確認密碼復雜性要求
檢查"密碼必須符合復雜性要求"選項的狀態:

密碼復雜性要求策略如下:

如果啟用此策略,密碼必須符合下列最低要求:
- 不能包含用戶的帳戶名,不能包含用戶姓名中超過兩個連續字符的部分;
- 至少有六個字符長;
- 包含以下四類字符中的三類字符:;
- 英文大寫字母(A 到 Z);
- 英文小寫字母(a 到 z);
- 10 個基本數字(0 到 9);
- 非字母字符(例如 !、$、#、%);
在更改或創建密碼時執行復雜性要求。
實際解決方案
問題原因:密碼中包含了賬號名稱,違反了復雜性要求。
修改密碼后重新執行創建腳本:
SELECT @@VERSION;
Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64) Apr 2 2010 15:48:46 Copyright (c) Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: ) (Hypervisor)
-- 創建登錄賬號并指定默認數據庫
CREATE LOGIN LUCIFER WITH PASSWORD = 'MSSQLTEST@2025!', DEFAULT_DATABASE = WANGDS;
-- 切換到目標數據庫
USE WANGDS;
GO
-- 創建數據庫用戶并關聯登錄賬號
CREATE USER LUCIFER FOR LOGIN LUCIFER;
GO
-- 設置默認 Schema
USE WANGDS;
ALTER USER LUCIFER WITH DEFAULT_SCHEMA = dbo;
GO
-- 授予表級別的增刪改查權限
GRANT SELECT, INSERT, UPDATE, DELETE ON WANGDS.dbo.zhangsan TO LUCIFER;
GRANT SELECT, INSERT, UPDATE, DELETE ON WANGDS.dbo.lissi TO LUCIFER;
GO
執行成功,賬號創建完成,可以對表進行增刪改查操作。
寫在最后
SQL Server 數據庫的密碼策略繼承自 Windows 操作系統的安全策略,而非獨立配置。遇到密碼復雜度問題時,應當:
- 檢查 Windows 本地安全策略的密碼設置;
- 確保密碼符合系統要求的復雜度標準;
- 避免在密碼中使用賬號名或用戶名的部分內容;
理解這一機制有助于快速定位和解決類似問題。
最后修改時間:2025-09-03 22:00:56
「喜歡這篇文章,您的關注和贊賞是給作者最好的鼓勵」
關注作者
【版權聲明】本文為墨天輪用戶原創內容,轉載時必須標注文章的來源(墨天輪),文章鏈接,文章作者等基本信息,否則作者和墨天輪有權追究責任。如果您發現墨天輪中有涉嫌抄襲或者侵權的內容,歡迎發送郵件至:contact@modb.pro進行舉報,并提供相關證據,一經查實,墨天輪將立刻刪除相關內容。




