閱讀300 返回首頁    go 阿裏雲 go 技術社區[雲棲]


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

  上一篇:go Spark on yarn 動態資源配置
  下一篇:go 一個小球帶你殺入Java多線程的世界,看懂的都是高手?