| 權限 | 說明 |
|---|---|
| SYSADM | 最高管理權限,通常由 DBA 持有,擁有所有實例/資料庫操作權 |
| SYSCTRL | 最高系統控制權,包含 SYSMAINT + SYSMON 權限,可管理實例配置、啟停、備份還原 |
| SYSMAINT | 次級系統控制權,可執行維護操作 (備份、還原、表空間管理),不可存取資料 |
| SYSMON | 最小實例級權限,僅可監控 (快照、db2pd、事件監控) |
# Linux/UNIX db2 get dbm cfg | grep -i SYSADM db2 get dbm cfg | grep -i SYSCTRL db2 get dbm cfg | grep -i SYSMAINT db2 get dbm cfg | grep -i SYSMON # Windows db2 get dbm cfg | find /I "SYSADM" db2 get dbm cfg | find /I "SYSCTRL" db2 get dbm cfg | find /I "SYSMAINT" db2 get dbm cfg | find /I "SYSMON"
groupadd db2ctlgrp useradd -g db2ctlgrp -m -d /home/db2ctlusr db2ctlusr # AIX: mkuser id=1005 pgrp=db2ctlgrp home=/home/db2ctlusr db2ctlusr
db2 update dbm cfg using SYSCTRL_GROUP db2ctlgrp db2stop; db2start
db2 get dbm cfg | grep SYSCTRL # SYSCTRL_GROUP = DB2CTLGRP
db2 connect to xcldb db2 "grant dbadm on database to user db2ctlusr" db2 connect reset # 撤銷 db2 connect to xcldb db2 "revoke dbadm on database from user db2ctlusr" db2 connect reset
更新 DBM 設定需 SYSADM 權限。確認 SYSADM_GROUP 所屬群組 (如 DB2IADM1),以該群組用戶執行更新。
# 授予群組 SELECT 權限 grant select on emp to group db2ctlgrp2 # 查詢所有權限相關系統表 db2 "select substr(tabname,1,20) from syscat.tables where tabschema='SYSCAT' and tabname like '%AUTH'" db2 "select * from syscat.dbauth"
create role myrole grant select on table vacation to role myrole grant role myrole to user myusr1, user myusr2 revoke role myrole from user myusr1 # 授予角色管理選項 grant role myrole to user myusr1 with admin option
更細粒度的行級/欄位級安全:為資料列/欄位打上安全標籤,用戶需具備對應標籤才能存取。未實際部署過,僅作概念記錄。
MAIL: xcl_168@aliyun.com | Blog: https://blog.csdn.net/xcl168