兩大資料庫皆支援 **Role-Based Access Control (RBAC)**,但 Oracle 在**權限原子化**上走得更遠,直接影響最小權限原則的落地難易度。
| 面向 | SQL Server | Oracle |
|---|---|---|
| 角色稱呼 | **Server Role** (固定) / **Database Role** (使用者定義) / **Windows Group** (外部) | **Role** (統一) |
| 權限授予單位 | 權限 → 角色 → 使用者/群組 | 權限 → 角色 → 使用者 |
| 使用者管理權限粒度 | `ALTER ANY LOGIN` / `CREATE LOGIN` / `DROP LOGIN` **通常打包授予**,難以拆分「可建不可刪」 | `CREATE USER`、`DROP USER`、**獨立系統權限**,可精確授予「只能建用戶、不能刪用戶」 |
| 物件權限粒度 | `SELECT/INSERT/UPDATE/DELETE/EXECUTE/REFERENCES` 等標準權限,較粗略 | 同標準權限,**另可對個別欄位授予 `SELECT/UPDATE`**,且支援 `GRANT ... ON schema.object TO role WITH GRANT OPTION` 細緻委派 |
| 預存程序/函數權限 | `EXECUTE` 權限控制執行,內部動態 SQL 需額外授權基礎表權限 (所有權鏈機制) | `EXECUTE` 權限,**定義者權限 (Definer's Rights) vs 呼叫者權限 (Invoker's Rights)** 可選,彈性極高 |
| 審計/稽核 | SQL Server Audit (2008+)、Extended Events、C2 Audit Trace | Unified Auditing (12c+)、Fine-Grained Auditing (FGA)、標準審計 |
| 加密 | TDE、Always Encrypted、Cell-level Encryption、Backup Encryption | TDE、Data Redaction、Tablespace Encryption、Network Encryption |
**Oracle 權限像手術刀,SQL Server 權限像瑞士刀**。Oracle 適合極高合規/多租戶/細緻委派場景;SQL Server 在 Windows 整合驗證、所有權鏈、Certificate 簽署機制上有獨特優勢。**選擇平台後,建立標準化權限模型、自動化審計、最小權限落地,比平台本身差異更重要**。