首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

構建 SQL Server 2000 企業級安全策略:從驗證模式到權限最小化

     編輯:關於SqlServer

核心原則

  • 驗證 ≠ 授權:驗證確認身份,授權決定能做什麼。
  • 優先 Windows 整合驗證:利用 Active Directory 單點登入、群組策略、審計追蹤。
  • 角色導向授權 (RBAC):權限給角色,角色給群組,用戶進群組——實現權限變更零代碼修改。

第一步:選擇驗證模式

模式優點缺點適用場景
Windows 驗證集中管理、Kerberos/NTLM、支援審計、多伺服器單一身份需網域環境企業內部、多伺服器、用戶 > 25
SQL Server 驗證簡單、跨平台、舊應用相容密碼管理分散、多伺服器同步困難、無審計獨立應用、用戶少、非網域環境
混合模式兼顧兩者面臨上述所有缺點過渡期、特定舊模組

建議:預設啟用 Windows 驗證;僅在必要時開啟混合模式,並嚴格限制 SQL 登入用途。

第二步:Web 環境驗證策略

  • 避免在 Web.config 寫死 sa 或固定 SQL 登入。
  • IIS 5.0/6.0 可用:匿名 NT 帳戶、Basic 認證 (需 SSL)、整合 Windows 驗證 (Kerberos/NTLM)、客戶端憑證映射。
  • 推薦:應用程式池識別 + 資料庫 Windows 群組授權,實現「應用身份 ≠ 使用者身份」的委派模型。

第三步:建立全域安全群組 (AD)

群組命名範例業務含義
SQL_Admins系統管理員 (sysadmin)
SQL_DBCreators建立資料庫 (dbcreator)
SQL_SecurityOps安全管理 (securityadmin)
AppName_ReadOnly特定應用唯讀
AppName_ReadWrite特定應用讀寫
SQL_DenyAccess明確拒絕登入

群組名採「前綴_角色」規範,利於辨識與自動化。

第四步:伺服器層級授權

-- 建立伺服器登入 (Windows 群組)
CREATE LOGIN [DOMAIN\SQL_Users] FROM WINDOWS;
-- 授予連線權限
GRANT CONNECT SQL TO [DOMAIN\SQL_Users];
-- 加入固定伺服器角色
EXEC sp_addsrvrolemember 'DOMAIN\SQL_Admins', 'sysadmin';
EXEC sp_addsrvrolemember 'DOMAIN\SQL_DBCreators', 'dbcreator';

技巧:用 sp_addsrvrolemember 而非 EM,可直接授權未在 syslogins 列出的群組。

第五步:資料庫層級授權 (Model 資料庫範本化)

  1. 在 model 中建立使用者定義角色:App_ReadOnly, App_ReadWrite, App_Admin。
  2. 授權角色而非個別登入:GRANT SELECT ON SCHEMA::dbo TO App_ReadOnly;
  3. 新資料庫自動繼承 model 的角色與權限,零配置擴展。

第六步:簡化運維的經驗法則

  • 用戶 → AD 群組 → 資料庫角色 → 權限。
  • 多權限用戶加入多個群組,而非疊加個別授權。
  • 所有變更在 AD 完成,資料庫自動反映,單一真實來源。
  • 定期腳本稽核 sys.server_permissions、sys.database_permissions。

結語

安全策略不是一次性專案,而是持續治理流程。以 Windows 整合驗證為基石、角色導向授權為樞紐、Model 資料庫為範本,即可構建既彈性又可審計的 SQL Server 防線。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved