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

SQL Server 2000 安全策略速成教程:從驗證模式到權限架構的完整建置指南

     編輯:關於SqlServer

微軟提供彈性強大的安全管理機制。遵循本文步驟,可為 SQL Server 7.0/2000 建立經得起考驗的靈活安全策略。

一、驗證模式選擇:Windows 整合驗證為首選

  • SQL Server 驗證:帳密存 master..sysxlogins。優點:EM 易設定;缺點:僅對單一伺服器有效、多庫權限需重複設定、適用 ≤25 用戶且權限少變場景。
  • Windows NT/2000 驗證:網域控制器驗證,產生存取權杖含使用者 SID 與群組 SID。SQL Server 僅使用 SID 授權,與作業系統驗證方式無關。首選理由:多伺服器集中管理、單一登入、支援稽核、群組授權簡化權限維護。

二、Web 環境驗證策略

避免在 Web 應用內嵌 SQL 登入(無法稽核、無法區分使用者、依賴應用驗證)。IIS 5.0/4.0 四種方案:

  1. 每站點/虛擬目錄建立匿名 NT 帳戶,授予適當權限。
  2. Basic 驗證 + SSL(密碼加密傳輸)。
  3. 整合 Windows 驗證(IE 專用),支援跨網域信任。
  4. 用戶端憑證映射至 NT 帳戶,取代帳密登入。

三、建立全域群組:應用導向 + 基礎角色

  • 依應用劃分群組(如會計系統:資料輸入員、主管、報表編寫、會計師、稽核、財務經理),命名語意化。
  • 基礎管理群組:SQL Server Administrators、Users、Denied Users、DB Creators、Security Operators、Database Security Operators、Developers、DB_Name Users。

四、授權伺服器與資料庫存取

  • 用 sp_addsrvrolemember 將群組加入伺服器角色(Sysadmin、Dbcreator、Securityadmin)。
  • 修改 model 資料庫:建立角色、授權,新資料庫自動繼承。
  • 用 sp_grantdbaccess 授權群組存取資料庫;拒絕存取需建立 Denied 群組並加入 db_denydatareader/writer。
  • 簡化:僅授權 DB_Name Users 群組存取,透過群組成員增減管理使用者。

五、權限分配:使用者定義角色 + GRANT/REVOKE/DENY

  • 角色名與群組名對應(如 Accounting Data Entry Operators),減少混淆。
  • DENY 最高優先:任何角色/群組有 DENY 即拒絕存取。
  • 內建角色僅用 db_securityadmin、db_owner;避免 db_datareader 等全庫授權後再逐一 DENY(易漏設)。
  • 使用者定義角色可容納 SQL 登入、NT 群組、本地群組、個人帳號,為通用權限容器。
  • 查找表/下拉選單限制輸入值,啟用宣告式完整性(CHECK/FOREIGN KEY),視圖提供抽象層隔離底表變更。

六、簡化安全管理經驗法則

  • 伺服器存取 ← SQL Server Users 群組;資料庫存取 ← DB_Name Users 群組。
  • 使用者 → 加入全域群組 → 群組加入角色 → 役擁有權限。
  • 多重權限 ← 加入多個群組。
  • 妥善規劃後,所有存取權限維護可在網域控制器完成,伺服器自動反映調整。

此架構兼顧安全性、可管理性與擴展性,是企業級 SQL Server 安全治理的經典藍圖。

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