DB2中的权限都能对数据库进行什么样的操做呢?下面就为您介绍DB2权限和操做之间的关系,若是您对DB2权限方面感兴趣的话,不妨一看。数据库
得到 SYSADMspa
具备 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”。orm
得到 SYSCTRL对象
具备 SYSCTRL 权限的用户能够执行实例内的全部管理和维护命令。然而,与 SYSADM 用户不一样,他们不能访问数据库内的任何数据,除非他们被授予了这样作所须要的特权。SYSCTRL 用户能够对实例内的任何数据库执行get
SYSCTRL 由具备 SYSADM 权限的用户使用命令 db2 update dbm cfg using SYSCTRL_GROUP group name 授予一个组。it
得到 SYSMAINTio
具备 SYSMAINT 权限的用户能够发出的命令是 SYSCTRL 权限被容许的命令的子集 — 就是被看做与“维护”有关的一些任务。table
请注意,具备 SYSMAINT 的用户不能建立或删除数据库或表空间(tablespace)。他们也不能访问数据库内的任何数据,除非他们被授予了这样作所须要的特权。test
SYSMAINT 由具备 SYSADM 权限的用户使用命令 db2 update dbm cfg using SYSMAINT_GROUP group name 授予一个组。import
得到 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 connec 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 权限。