首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

DB2 資料庫授權體系詳解:權限層級、群組管理與實務授權指令

     編輯:DB2 教學

DB2 採分層授權模型:實例級權限(SYSADM/SYSCTRL/SYSMAINT)透過 DBM CFG 群組參數管理;資料庫級權限(DBADM/LOAD)則以 GRANT 陳述式授予使用者或群組。本文深入解析各權限職能、授權指令與 Windows/UNIX 差異。

一、五大權限分類與範圍

權限 層級 授予對象 核心職能
SYSADM實例級群組最高權限:實例配置、所有資料庫物件存取、授權管理
SYSCTRL實例級群組控制權:啟停實例、建刪資料庫/表空間、備份還原、RUNSTATS、更新 DB CFG(不可存取資料)
SYSMAINT實例級群組維護權:備份還原、表空間管理、RUNSTATS、更新 DB CFG(不可建刪資料庫、不可存取資料)
DBADM資料庫級使用者/群組資料庫管理員:該資料庫所有物件控制權、授權管理
LOAD資料庫級使用者/群組執行 LOAD 命令匯入大量資料

二、SYSADM 群組取得與授權

  • Windows:建立實例時預設指派 Administrators 群組(db2 get dbm cfg 顯示為空)。
  • UNIX/Linux:預設為建立實例使用者的主群組。
  • 唯有 SYSADM 可更新 DBM CFG,故唯有 SYSADM 能授予其他 SYS* 權限。

授予 SYSADM 給 db2grp1 群組

db2 update dbm cfg using SYSADM_GROUP db2grp1

三、SYSCTRL 權限詳解與授權

可執行操作範例

  • db2start / db2stop
  • db2 create/drop database
  • db2 create/drop tablespace
  • db2 backup/restore/rollforward database
  • db2 runstats(任意表)
  • db2 update db cfg for database <dbname>

授予 SYSCTRL 給群組

db2 update dbm cfg using SYSCTRL_GROUP <群組名>

四、資料庫級授權:GRANT 語法

GRANT DBADM ON DATABASE TO USER <用戶>;
GRANT LOAD ON DATABASE TO GROUP <群組>;

五、實務建議

  1. 遵循最小權限原則:日常運維用 SYSCTRL/SYSMAINT,保留 SYSADM 給極少數人員。
  2. 以群組管理取代個別使用者授權,利於人員異動維護。
  3. 定期稽核 SYSCAT.DBAUTH、SYSCAT.TABAUTH 確認權限狀態。

小結

DB2 授權體系清晰分離實例與資料庫層級,善用群組參數與 GRANT 指令,即能建立安全、可審計的權限治理架構。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved