时间:2021-07-01 10:21:17 帮助过:4人阅读
二、授权操作
DB2数据库授权由特权组和高级数据库管理程序(实例级)维护和实用操作组成。在DB2可用的5 种权限中,SYSADM、SYSCTRL和 SYSMAINT 是实例级权限。这意味着它们的范围包含实例级命令以及针对这个实例中的所有数据库的命令。这些权限只能分配给组;可以通过 DBM CFG 文件分配这些权限。
1、获得 SYSADM
具有 SYSADM 权限的用户可以发出作用于 DB2 实例、实例内的任何数据库以及这些数据库内的任何对象的任何 DB2 命令。他们也能够访问数据库内的数据,授予或撤消特权和权限。SYSADM 用户是唯一被允许更新数据库管理器配置(Database Manager Configuration(DBM CFG))文件的用户。
SYSADM 权限在 DBM CFG 中通过 SYSADM_GROUP 参数控制。当创建实例时,在 Windows 上这个参数被设置为 Administrator(尽管当您发出命令 db2 get dbm cfg 时显示为空)。在 UNIX 上,该参数被设置为创建实例的用户的主组。由于 SYSADM 用户是唯一被允许更新 DBMCFG 的用户,所以,他们也是唯一能够将任何 SYS* 权限授予其它组的用户。
以下示例演示如何向 db2grp1 组授予 SYSADM 权限:
db2 update dbm cfg usingSYSADM_GROUP db2grp1
2、 获得 SYSCTRL
具有 SYSCTRL 权限的用户可以执行实例内的所有管理和维护命令。然而,与 SYSADM 用户不同,他们不能访问数据库内的任何数据,除非他们被授予了这样做所需要的特权。SYSCTRL 用户可以对实例内的任何数据库执行
拥有 SYSADM 权限的用户可以使用以下命令将 SYSCTRL 分配给一个组:
db2 update dbm cfg usingSYSCTRL_GROUP group name
3、 获得 SYSMAINT
具有 SYSMAINT 权限的用户可以发出的命令是 SYSCTRL 权限被允许的命令的子集, 就是被看作与“维护”有关的一些任务。
请注意,具有 SYSMAINT 的用户不能创建或删除数据库或表空间(tablespace)。他们也不能访问数据库内的任何数据,除非他们被授予了这样做所需要的特权。
拥有 SYSADM 权限的用户可以使用以下命令将 SYSMAINT 分配给一个组:
db2 update dbm cfg usingSYSMAINT_GROUP group name。
4、Grant
DB2数据库授权是通过GRANT命令实现的,DB2数据库授权后,用户才可以对DB2进行相应的操作。针对特定数据库的DBADM 和LOAD 权限可以分配给用户或用户组。可以使用GRANT命令显式地分配这些权限。
语法:
>>-GRANT--authorization-specification--------------------------->
.-,----------------------.
V |
>--TO----+-authorization-name-+-+--+-------------------+-------><</em>
+-ROLE--role-name----+ ‘-WITH GRANT OPTION-‘
‘-PUBLIC-------------‘
简单示例(需要先连接数据库):
--授权数据库管理权限给用户
db2grant dbadm on database to user db2admin
--授权数据库管理权限给用户组
db2 grant dbadm on database to group db2grp1
--授权查询:
db2grant select on table tableName to user db2admin
--全部授权
DB2 GRANTALL ON TABLE OWK."FAVMENU" TO USER sckdev
db2 用户权限
标签: