兩大安全模式對比
| 模式 | 對應 6.5 模式 | 特點 | 適用場景 |
| SQL Server 和 Windows NT (混合模式) | 混合模式 | 支援 SQL 登入 + NT 登入;非 NT 用戶端/Internet 用戶可連線 | 異構用戶端、Web 應用、需 SQL 登入的舊系統 |
| 僅 Windows NT | 信任模式 | 僅支援 NT/網域帳號;單一登入、密碼策略由 NT 統一管理 | 純內網 Windows 環境、重視單一身分識別管理 |
注意: SQL 7.0 移除了 6.5 的「標準模式」(僅 SQL 登入)。
管理工具變更
- 6.5 **SQL 安全管理器** → 7.0 **安全精靈** (Security Wizard),引導式設定登入、角色、權限。
- 企業管理器 (EM) 圖形化介面成為主流操作入口。
設定安全模式 (EM)
- 展開伺服器群組 → 右鍵伺服器 → **屬性** → **安全性** 索引標籤
- 選擇「SQL Server 和 Windows NT」或「僅 Windows NT」
- 確定 → 重啟 SQL Server 服務生效
授權 Windows 群組/用戶登入
EM 圖形化操作
- 展開伺服器 → **安全性** → **登入** → 右鍵 **新增登入**
- 名稱輸入「網域\群組」或「網域\用戶」
- 驗證模式選 **Windows NT 驗證**,選擇網域
- 預設資料庫、語言 → 確定
T-SQL 指令
-- 授權網域群組/用戶
EXEC sp_grantlogin 'DOMAIN\GroupName'; -- 或 'DOMAIN\UserName'
-- 撤銷授權
EXEC sp_revokelogin 'DOMAIN\GroupName';
群組授權關鍵行為
- **群組成員異動自動生效**:增減群組成員**無需**修改 SQL 登入。
- **刪除群組/用戶不自動移除登入**:需手動
sp_revokelogin,否則殘留登入記錄。
- **拒絕存取覆蓋授權**:若群組獲授權,但個別成員在 SQL 設為「拒絕存取」,該成員無法連線。
三層權限架構
- 伺服器層級:登入帳號、伺服器角色 (sysadmin, securityadmin, serveradmin, setupadmin, processadmin, diskadmin, dbcreator, bulkadmin)
- 資料庫層級:資料庫使用者 (對應登入)、資料庫角色 (db_owner, db_datareader, db_datawriter, db_ddladmin, db_securityadmin, db_backupoperator, db_denydatareader, db_denydatawriter, public, 自訂角色)
- 物件層級:GRANT/DENY/REVOKE ON 物件 (SELECT, INSERT, UPDATE, DELETE, EXEC, REFERENCES 等)
最佳實踐建議
- **優先使用 Windows 驗證**,整合網域密碼策略、鎖定、稽核。
- **善用角色**:用戶→資料庫角色→權限,避免直接對用戶授權物件權限。
- **最小權限原則**:應用程式連線帳號僅授予必要資料庫的 db_datareader/db_datawriter + 執行特定預存程序權限。
- **立即修改 sa 密碼**,嚴格限制 sysadmin 成員數量。
- **啟用登入稽核**:屬性 → 安全性 → 稽核層級:失敗/成功/全部。
結語
SQL Server 7.0 奠定了「Windows 整合驗證 + 角色基礎存取控制 (RBAC)」的現代安全架構基石。掌握兩大模式差異、群組授權行為、三層權限模型與最佳實踐,能構建合規、可審計、易維護的資料庫安全防線。