DB2 授权
DB2可用的5种权限中,SYSADM、SYSCTRL、SYSMAINT是实例级权限;这些权限只能分配给组;可以通过DBM CFG文件分配这些权限。
DBADM和LOAD的权限是针对数据库的;可以分配给用户组或用户;可以使用GRANT命令分配这些权限。
通过db2 get authorizations命令查看自己拥有的权限和数据库级特权。
SYSADM权限
对一个DB2实例拥有这个权限的用户,能够对这个实例、这个实例中的任何数据库以及这些数据库中的任何数据对象发出任何DB2命令。
只允许SYSADM权限用户更新DBM CFG文件。
SYSADM权限由DBM CFG文件中的SYSADM_GROUP参数控制。
向db2grp1组授予SYSADM权限:db2 update dbm cfg using SYSADM_GROUP db2grp1。停止实例并重新启动后该设置生效。
SYSCTRL权限
拥有SYSCTRL权限的用户可以在实例中执行所有管理和维护命令。但是,他们不能访问数据库中的任何数据,除非他们被授予了访问数据的特权。
可以执行的命令:
db2start/db2stop
db2 create/drop database
db2 create/drop tablespace
db2 backup/restore/rollforward database
db2 runstats
db2 update db cfg for database dbname
拥有SYSADM权限的用户可以使用下面的命令将SYSCTRL分配一个组:
db2 update dbm cfg using SYSCTRL_GROUP groupname
SYSMAINT权限
SYSMAINT用户只能执行与维护相关的任务。
db2start/db2stop
db2 backup/restore/rollforward database
db2 runstats
db2 update db cfg for database dbname
拥有SYSADM权限的用户可以使用下面的命令将SYSMAINT分配一个组:
db2 update dbm cfg using SYSMAINT_GROUP groupname
DBADM权限
他是一个数据库级别的权限。DBADM用户对一个数据库有几乎完全的控制能力。
可以执行以下任务:
db2 create/drop table
db2 grant/revoke
db2 runstats
授予DBADM权限的不同方法:
db2 create database test
将数据库test上的DBADM权限隐式地授予发出此命令的用户。
db2 connect to sample
db2 grant DBADM on database to user tst1
将数据库sample上的DBADM权限授予用户tst1。
db2 grant DBADM on database to group db2grp1
将DBADM权限授予db2grp1组中的每个用户。
LOAD权限
LOAD权限允许用户对表发出LOAD命令。
db2 quiesce tablespace for table
db2 list tablespace
db2 runstats
db2 load insert
db2 load restart/terminate after load insert
db2 load replace
db2 load restart/terminate after load replace
拥有SYSADM或DBADM的用户能够对用户或用户组授予或撤销LOAD权限。
db2 connect to sample
db2 grant LOAD on database to user tst1
db2 grant insert on table sales to user tst1
有了LOAD权限和INSERT权限,tst1就可以对表发出LOAD INSERT或LOAD RESTART,或者LOAD INSERT之后发出TERMINATE命令。