策略式管理 (Policy-Based Management, PBM) 是 SQL Server 2008 最具戰略價值的創新之一。它將「人工檢查」昇級為「策略驅動、自動執行、全域一致」的治理體系。本文以「預存程序命名規範強制執行」為例,完整演示從概念到落地的全流程。
@Name LIKE 'usp[_]%')

| 模式 | 觸發機制 | 阻斷性 | 典型用途 |
|---|---|---|---|
| 隨選 | 手動點擊評估 | 否 | 臨時稽核、上線前驗證 |
| 排程 | SQL Agent 定時作業 | 否(記錄違規) | 夜間合規掃描、趨勢報表 |
| 變更時:記錄 | 事件通知 (DDL 事件) | 否 | 審計追蹤、事後追責 |
| 變更時:禁止 | DDL 觸發器回滾 | 是 | 強制命名、關鍵屬性保護、安全基線 |
@Name,運算子:LIKE,值:'usp[_]%'LOWER(@Name) LIKE 'usp[_]%' 兼容大小寫
@Name = 'TestDB1'

-- 符合規範:成功
CREATE PROC usp_GetDate AS SELECT GETDATE();
-- 違反規範:DDL 觸發器攔截,交易回滾
CREATE PROC db1_GetDate AS SELECT GETDATE();
-- 錯誤:違反策略「檢查預存程序命名規範」,條件:"Lower(@Name) LIKE 'usp[_]%'"
-- 訊息 3609,層級 16,狀態 1,程序 sp_syspolicy_dispatch_event,第 65 行
其他資料庫不受影響,精準管控。


微軟官方策略範本包涵蓋:
• 資料庫自動收縮檢查 • SQL Server 密碼原則 • 網路資料表大小限制 • 最大平行度 (MAXDOP) 設定 • 備份壓縮啟用 • 審計規格部署 …
PBM 將「部落知識」轉化為「可執行策略」,以四種評估模式覆蓋從事前阻斷到事後審計的完整治理光譜。善用它,DBA 從「救火隊員」轉型為「架構治理者」,企業級 SQL Server 環境合規成本大幅降低,風險可控性質變提升。