DB2 採分層授權模型:實例級權限(SYSADM/SYSCTRL/SYSMAINT)透過 DBM CFG 群組參數管理;資料庫級權限(DBADM/LOAD)則以 GRANT 陳述式授予使用者或群組。本文深入解析各權限職能、授權指令與 Windows/UNIX 差異。
| 權限 | 層級 | 授予對象 | 核心職能 |
|---|---|---|---|
SYSADM | 實例級 | 群組 | 最高權限:實例配置、所有資料庫物件存取、授權管理 |
SYSCTRL | 實例級 | 群組 | 控制權:啟停實例、建刪資料庫/表空間、備份還原、RUNSTATS、更新 DB CFG(不可存取資料) |
SYSMAINT | 實例級 | 群組 | 維護權:備份還原、表空間管理、RUNSTATS、更新 DB CFG(不可建刪資料庫、不可存取資料) |
DBADM | 資料庫級 | 使用者/群組 | 資料庫管理員:該資料庫所有物件控制權、授權管理 |
LOAD | 資料庫級 | 使用者/群組 | 執行 LOAD 命令匯入大量資料 |
Administrators 群組(db2 get dbm cfg 顯示為空)。db2 update dbm cfg using SYSADM_GROUP db2grp1
db2start / db2stopdb2 create/drop databasedb2 create/drop tablespacedb2 backup/restore/rollforward databasedb2 runstats(任意表)db2 update db cfg for database <dbname>db2 update dbm cfg using SYSCTRL_GROUP <群組名>
GRANT DBADM ON DATABASE TO USER <用戶>;
GRANT LOAD ON DATABASE TO GROUP <群組>;
SYSCAT.DBAUTH、SYSCAT.TABAUTH 確認權限狀態。DB2 授權體系清晰分離實例與資料庫層級,善用群組參數與 GRANT 指令,即能建立安全、可審計的權限治理架構。