DB2權(quán)限與操作
DB2中的權(quán)限都能對(duì)數(shù)據(jù)庫(kù)進(jìn)行什么樣的操作呢?下面就為您介紹DB2權(quán)限和操作之間的關(guān)系,如果您對(duì)DB2權(quán)限方面感興趣的話,不妨一看。
獲得 SYSADM
具有 SYSADM 權(quán)限的用戶可以發(fā)出作用于 DB2 實(shí)例、實(shí)例內(nèi)的任何數(shù)據(jù)庫(kù)以及這些數(shù)據(jù)庫(kù)內(nèi)的任何對(duì)象的任何 DB2 命令。他們也能夠訪問(wèn)數(shù)據(jù)庫(kù)內(nèi)的數(shù)據(jù),授予或撤消特權(quán)和權(quán)限。SYSADM 用戶是唯一被允許更新數(shù)據(jù)庫(kù)管理器配置(Database Manager Configuration(DBM CFG))文件的用戶。SYSADM 權(quán)限在 DBM CFG 中通過(guò) SYSADM_GROUP 參數(shù)控制。當(dāng)創(chuàng)建實(shí)例時(shí),在 Windows 上這個(gè)參數(shù)被設(shè)置為 Administrator(盡管當(dāng)您發(fā)出命令 db2 get dbm cfg 時(shí)顯示為空)。在 UNIX 上,該參數(shù)被設(shè)置為創(chuàng)建實(shí)例的用戶的主組。由于 SYSADM 用戶是唯一被允許更新 DBM CFG 的用戶,所以,他們也是唯一能夠?qū)⑷魏?SYS* 權(quán)限授予其它組的用戶。如下示例說(shuō)明了如何將 SYSADM 權(quán)限授予組“grp1”。
獲得 SYSCTRL
具有 SYSCTRL 權(quán)限的用戶可以執(zhí)行實(shí)例內(nèi)的所有管理和維護(hù)命令。然而,與 SYSADM 用戶不同,他們不能訪問(wèn)數(shù)據(jù)庫(kù)內(nèi)的任何數(shù)據(jù),除非他們被授予了這樣做所需要的特權(quán)。SYSCTRL 用戶可以對(duì)實(shí)例內(nèi)的任何數(shù)據(jù)庫(kù)執(zhí)行
SYSCTRL 由具有 SYSADM 權(quán)限的用戶使用命令 db2 update dbm cfg using SYSCTRL_GROUP group name 授予一個(gè)組。
獲得 SYSMAINT
具有 SYSMAINT 權(quán)限的用戶可以發(fā)出的命令是 SYSCTRL 權(quán)限被允許的命令的子集 — 就是被看作與“維護(hù)”有關(guān)的一些任務(wù)。
請(qǐng)注意,具有 SYSMAINT 的用戶不能創(chuàng)建或刪除數(shù)據(jù)庫(kù)或表空間(tablespace)。他們也不能訪問(wèn)數(shù)據(jù)庫(kù)內(nèi)的任何數(shù)據(jù),除非他們被授予了這樣做所需要的特權(quán)。
SYSMAINT 由具有 SYSADM 權(quán)限的用戶使用命令 db2 update dbm cfg using SYSMAINT_GROUP group name 授予一個(gè)組。
獲得 DBADM
DBADM 權(quán)限是一種數(shù)據(jù)庫(kù)級(jí)權(quán)限而不是實(shí)例級(jí)權(quán)限??偟膩?lái)說(shuō),DBADM 用戶可以對(duì)數(shù)據(jù)庫(kù)進(jìn)行完全控制 — 嗯,大致如此。DBADM 用戶不能執(zhí)行任何維護(hù)或管理任務(wù),例如刪除數(shù)據(jù)庫(kù)、刪除/創(chuàng)建表空間、備份/恢復(fù)數(shù)據(jù)庫(kù)或 update db cfg for database db name 。
DBADM 用戶還自動(dòng)被授予對(duì)數(shù)據(jù)庫(kù)對(duì)象及其內(nèi)容的所有特權(quán)。由于 DBADM 權(quán)限是數(shù)據(jù)庫(kù)級(jí)權(quán)限,所以它可以被授予用戶和組。以下示例說(shuō)明如何將 DBADM 權(quán)限授給用戶“tst1”,這個(gè)用戶是“grp1”的一個(gè)成員。
db2 create database test
這個(gè)命令把對(duì)數(shù)據(jù)庫(kù)“test”的隱式 DBADM 權(quán)限賦予發(fā)出此命令的用戶。
db2 grant dbadm on database to user tst1
這個(gè)命令只能由 SYSADM 用戶發(fā)出。用戶將必須連接到擁有該權(quán)限的數(shù)據(jù)庫(kù)。例如,如果首先發(fā)出如下命令,則 DBADM 將被授給 sample 數(shù)據(jù)庫(kù)的用戶 tst1:
db2 connect to sample。
db2 grant dbadm on database to group grp1
再一次,這個(gè)命令也只能由 SYSADM 用戶發(fā)出。
獲得 LOAD
LOAD 權(quán)限也被看作數(shù)據(jù)庫(kù)級(jí)權(quán)限,因而可以授予用戶和組。這個(gè)權(quán)限是 DB2 版本 7 的新東西。正如其名稱所暗示的,LOAD 權(quán)限允許用戶對(duì)表發(fā)出 LOAD 命令。LOAD 命令典型地用來(lái)在向表植入大量數(shù)據(jù)時(shí)作為 insert 或 import 命令的更快速的替代命令。取決于您想執(zhí)行的 LOAD 的類型,僅僅具有 LOAD 權(quán)限是不夠的。還需要對(duì)表的特定特權(quán)。
只允許具有 SYSADM 或 DBADM 權(quán)限的用戶授予或撤消用戶或組的 LOAD 權(quán)限。
【編輯推薦】