SQL Server 7.0 引入 7 種固定伺服器角色、9 種固定資料庫角色。舊版僅有 sa 擁有所有權限,多位使用者映射為 sa 導致審計無法辨識具體操作者。新架構透過角色成員資格授權,將系統管理員權限細分:sysadmin(系統管理)、dbcreator(建立/變更資料庫)、securityadmin(管理登錄/預設資料庫)等。sa 保留僅為相容性,實際權限來自 sysadmin 角色成員資格。審計追蹤依 Windows NT 或 SQL Server 登錄名記錄,不受權限分配影響。
資料庫層級同理:db_owner 取代 dbo 擁有完全控制權;db_accessadmin(存取控制)、db_securityadmin(授權)、db_backupoperator(備份)等細分角色。支援使用者自訂角色、應用程式角色,且使用者可同時隸屬多角色。
更強健:標準安全模式缺乏密碼到期、防空密碼、最小長度、進階密碼策略。整合後套用 Windows NT 密碼原則即同步強化 SQL Server。
更易實施:新增整個網域群組為 SQL Server 登錄,動態生效。舊版需列舉群組成員,成員異動須重新操作。新架構下,群組成員被刪除自動失去存取權,無需額外維護。
情境:薪資應用程式允許更新薪資,但禁止使用者直接登入修改(防自行調薪)。應用程式以使用者身分登入(審計追蹤),切換資料庫後呼叫 sp_setapprole 啟動應用程式角色(受密碼保護,傳輸可加密)。啟動後,使用者原有權限關閉,應用程式角色權限生效,執行特定業務邏輯(如防自我修改薪資)。
注意:應用程式角色屬連線專用。多連線需各自啟動。連線建立並切換資料庫後,首要動作即呼叫 sp_setapprole,否則無法存取角色專屬資料。