程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> DB2數據庫 >> DB2教程 >> DB2權限與操作

DB2權限與操作

編輯:DB2教程

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 權限。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved