DB2數(shù)據(jù)庫授權(quán)詳解
DB2數(shù)據(jù)庫授權(quán)是通過GRANT命令實(shí)現(xiàn)的,DB2數(shù)據(jù)庫授權(quán)后,用戶才可以對(duì)DB2進(jìn)行相應(yīng)的操作。
DB2數(shù)據(jù)庫授權(quán)由特權(quán)組和高級(jí)數(shù)據(jù)庫管理程序(實(shí)例級(jí))維護(hù)和實(shí)用操作組成。在DB2可用的5 種權(quán)限中,SYSADM、SYSCTRL 和 SYSMAINT 是實(shí)例級(jí)權(quán)限。這意味著它們的范圍包含實(shí)例級(jí)命令以及針對(duì)這個(gè)實(shí)例中的所有數(shù)據(jù)庫的命令。這些權(quán)限只能分配給組;可以通過 DBM CFG 文件分配這些權(quán)限。
針對(duì)特定數(shù)據(jù)庫的DBADM 和LOAD 權(quán)限可以分配給用戶或用戶組。可以使用GRANT命令顯式地分配這些權(quán)限。
獲得 SYSADM 權(quán)限
SYSADM 權(quán)限由 DBM CFG 文件中的 SYSADM_GROUP 參數(shù)控制。在 Windows 上,在創(chuàng)建實(shí)例時(shí),這個(gè)參數(shù)設(shè)置為 Administrator(但是,如果發(fā)出命令 db2 get dbm cfg,它看起來是空的)。在 UNIX 上,它設(shè)置為創(chuàng)建這個(gè)實(shí)例的用戶的主組。
因?yàn)橹辉试S SYSADM 用戶更新 DBM CFG 文件,所以只有他們能夠向其他組授予任何 SYS* 權(quán)限。以下示例演示如何向 db2grp1 組授予 SYSADM 權(quán)限:
db2 update dbm cfg using SYSADM_GROUP db2grp1
獲得 SYSCTRL 權(quán)限
擁有 SYSCTRL 權(quán)限的用戶可以在實(shí)例中執(zhí)行所有管理和維護(hù)命令。但是,與 SYSADM 用戶不同,他們不能訪問數(shù)據(jù)庫中的任何數(shù)據(jù),除非他們被授予了訪問數(shù)據(jù)所需的特權(quán)。SYSCTRL 用戶可以對(duì)實(shí)例中的任何數(shù)據(jù)庫執(zhí)行的命令示例如下:
* db2start/db2stop
* db2 create/drop database
* db2 create/drop tablespace
* db2 backup/restore/rollforward database
* db2 runstats(針對(duì)任何表)
* db2 update db cfg for database dbname
擁有 SYSADM 權(quán)限的用戶可以使用以下命令將 SYSCTRL 分配給一個(gè)組:
db2 update dbm cfg using SYSCTRL_GROUP group name
【編輯推薦】