DB2数据库授权是通过GRANT命令实现的,DB2数据库授权后,用户才可以对DB2进行相应的操作。
DB2数据库授权由特权组和高级数据库管理程序(实例级)维护和实用操作组成。在DB2可用的5 种权限中,SYSADM、SYSCTRL 和 SYSMAINT 是实例级权限。这意味着它们的范围包含实例级命令以及针对这个实例中的所有数据库的命令。这些权限只能分配给组;可以通过 DBM CFG 文件分配这些权限。
针对特定数据库的DBADM 和LOAD 权限可以分配给用户或用户组。可以使用GRANT命令显式地分配这些权限。
获得 SYSADM 权限
SYSADM 权限由 DBM CFG 文件中的 SYSADM_GROUP 参数控制。在 Windows 上,在创建实例时,这个参数设置为 Administrator(但是,如果发出命令 db2 get dbm cfg,它看起来是空的)。在 UNIX 上,它设置为创建这个实例的用户的主组。
因为只允许 SYSADM 用户更新 DBM CFG 文件,所以只有他们能够向其他组授予任何 SYS* 权限。以下示例演示如何向 db2grp1 组授予 SYSADM 权限:
db2 update dbm cfg using SYSADM_GROUP db2grp1
获得 SYSCTRL 权限
拥有 SYSCTRL 权限的用户可以在实例中执行所有管理和维护命令。但是,与 SYSADM 用户不同,他们不能访问数据库中的任何数据,除非他们被授予了访问数据所需的特权。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 group name
【编辑推荐】