DB2(三)——權限(authentication)
DB2定義了一個權限層次結構,用於將一組預先確定的管理權限授予**用戶賬號組(group)**。這些管理權限包括能夠對數據庫進行備份、更改配置參數、查看表數據等等。權限級別控製執行數據庫管理器維護操作和管理數據庫對象的能力。
DB2授權控製數據庫安全策略的以下方麵:
- 用戶被授予的權限級別
- 允許用戶運行的命令
- 允許用戶讀取或修改的數據
- 允許用戶創建、修改和刪除的數據庫對象 DB2中共包括兩類權限:實例級和數據庫級權限。
- 實例級權限
- SYSADM 係統管理員
- SYSCTRL 係統控製
- SYSMAINT 係統維護
- SYSMON 係統監視 這些權限隻能分配給組
- 數據庫級權限
- DBADM
- SECADM
- LOAD
用戶可以通過以下命令來判斷自己擁有哪些權限和數據庫級特權
db2 get authorizations ---9.7
[db2inst1@db22 adm]$ db2 "SELECT substr(AUTHORITY,1,30) as AUTHORITY, D_USER, D_GROUP, D_PUBLIC, ROLE_USER, ROLE_GROUP, ROLE_PUBLIC, D_ROLE FROM TABLE (SYSPROC.AUTH_LIST_AUTHORITIES_FOR_AUTHID ('DB2INST1', 'U') ) AS T ORDER BY AUTHORITY"
結果如圖:
AUTHORITY | D_USER | D_GROUP | D_PUBLIC | ROLE_USER | ROLE_GROUP | ROLE_PUBLIC | D_ROLE |
---|---|---|---|---|---|---|---|
ACCESSCTRL | Y | N | N | N | N | N | * |
BINDADD (允許用戶在數據庫中創建新的包) | N | N | Y | N | N | N | * |
CONNECT (允許用戶連接數據庫) | N | N | Y | N | N | N | * |
CREATETAB (允許創建表) | N | N | Y | N | N | N | * |
CREATE_EXTERNAL_ROUTINE (允許用戶注冊外部例程-用C或java寫的例程) | N | N | N | N | N | N | * |
CREATE_NOT_FENCED_ROUTINE | N | N | N | N | N | N | * |
CREATE_SECURE_OBJECT | N | N | N | N | N | N | * |
DATAACCESS | Y | N | N | N | N | N | * |
DBADM | Y | N | N | N | N | N | * |
EXPLAIN | N | N | N | N | N | N | * |
IMPLICIT_SCHEMA 允許用戶在尙不存在的模式中創建對象(自動創建模式) | N | N | Y | N | N | N | * |
LOAD | N | N | N | N | N | N | * |
QUIESCE_CONNECT(允許用戶連接處於quiesced狀態的數據庫) | N | N | N | N | N | N | * |
SECADM | Y | N | N | N | N | N | * |
SQLADM | N | N | N | N | N | N | * |
SYSADM | * | Y | * | * | * | * | * |
SYSCTRL | * | N | * | * | * | * | * |
SYSMAINT | * | N | * | * | * | * | * |
SYSMON | * | N | * | * | * | * | * |
WLMADM | N | N | N | N | N | N | * |
可以看到db2inst1用戶所在的組是有SYSADM權限的
授予/撤銷實例級權限
獲得SYSADM權限
DB2中的SYSADM權限就像是unix上的root權限。SYSADM用戶能夠對其他用戶授予或撤銷特權或權限。隻允許SYSADM 用戶更新DBM CFG文件。SYSADM 權限由DBM CFG中的SYSADM GROUP參數控製。
[db2inst1@db22 ~]$ db2 get dbm cfg | grep -i sysadm
SYSADM group name (SYSADM_GROUP) = DB2IADM1
獲取SYSCTRL權限
SYSCTRL用戶可以對實例中的任何數據庫執行的命令示例如下所示:
- db2start/db2stop
- db2 create/drop databse
- db2 create/drop tablespace
- db2 backup/restore/rollforward database
- db2 runstats (針對任何表)
- db2 update db cfg for database dbname
擁有SYSADM權限的用戶使用以下命令將SYSCTRL分配給一個組:
db2 update dbm cfg using SYSCTRL_GROUP group_name
授予/撤銷數據庫級權限
數據庫級權限包括DBADM、CONNECT、CREATETAB 、SECADM和LOAD。
獲得dbadm權限
db2 grant dbadm on database to group db2groupq
獲得LOAD權限
db2 grant load on database to user xinzhuang
db2 grant insert on table sales to user xinzha
最後更新:2017-04-14 15:30:25