角色簡化權限管理:將權限指派給角色,再將使用者加入角色。SQL Server 7.0 引入角色取代群組。本文系統解析:1) 伺服器角色:範圍跨伺服器、權限固定不可修改、7 種預定義 (sysadmin, securityadmin, serveradmin, setupadmin, processadmin, diskadmin, dbcreator);2) 資料庫角色:範圍限定資料庫、權限可自訂、兩類:預定義 (db_owner, db_securityadmin, db_datareader, db_datawriter, db_ddladmin, db_backupoperator, db_denydatareader, db_denydatawriter) 與使用者自訂角色。並說明建立/修改/刪除角色 T-SQL (sp_addsrvrolemember, sp_addrole, sp_droprole) 與 Enterprise Manager 操作。
| 維度 | 伺服器角色 | 資料庫角色 |
|---|---|---|
| 作用範圍 | 整個 SQL Server 實例 | 單一資料庫 |
| 權限修改 | 固定不可變 | 可自訂 (自訂角色) 或固定 (預定義) |
| 典型用途 | DBA 管理權限分層 | 應用程式資料存取權限控制 |
| 成員類型 | 登入帳號 | 資料庫使用者 |
sysadmin:最高權限,執行任意管理操作。securityadmin:管理登入、讀取錯誤日誌、變更密碼。serveradmin:設定伺服器選項、關閉伺服器。setupadmin:管理連結伺服器、啟動預存程序。processadmin:管理執行緒 (KILL)、追蹤旗標。diskadmin:管理磁碟檔案 (備份裝置、資料庫檔案)。dbcreator:建立/修改/卸除資料庫。
App_ReadOnly, App_ReadWrite, App_Admin)。GRANT SELECT/INSERT/UPDATE/DELETE ON Schema::dbo TO Role。