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