DB2 授权
授权简介
DB2 授权控制数据库宁静筹划的以下方面:
- 用户被授予的权限级别
- 答应用户运转的敕令
- 答应用户读取和/或删改的数据
- 答应用户树立、删改和/或删除的数据库东西
授权由特权组和初级数据库经管法式(实例级)维护和合用操纵构成。在 DB2 可用的 5 种权限中,SYSADM、SYSCTRL 和 SYSMAINT 是实例级权限。这意味着它们的范围包孕实例级敕令以及针对这个实例中的完备数据库的敕令。这些权限只能分拨给组;可以经由 DBM CFG 文件分拨这些权限。
针对特定数据库的 DBADM 和 LOAD 权限可以分拨给用户或用户组。可以行使 GRANT 敕令显式地分拨这些权限。
以下几节刻画若何分拨每种权限以及答应拥有此权限的用户实行哪些敕令。细致,任何提到构成员关系的地方都假定在操纵系统级上曾经定义了这些用户和组名。
用户可以经由收回以下敕令来判定自己拥有哪些权限和数据库级特权:
db2 get authorizations
![](https://www.ibm.com/i/v14/rules/blue_rule.gif)
![](https://www.ibm.com/i/c.gif)
![](https://www.ibm.com/i/c.gif)
获得 SYSADM 权限
DB2 中的 SYSADM 权限就像是 UNIX 上的根权限或 Windows 上的 Administrator 权限。对一个 DB2 实例拥有 SYSADM 权限的用户可以对这个实例、这个实例中的任何数据库以及这些数据库中的任何东西收回任何 DB2 敕令。他们还可以造访数据库中的数据以及对其他用户授予或除去特权或权限。只答应 SYSADM 用户更新 DBM CFG 文件。
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
请记住,这一删改直到实例压抑偏重新启动之后才会见效。还要记住,如果您以后不是作为 db2grp1 组的成员登录的,那么就无权重新启动实例!您必需挂号并用精确的组中的 ID 重新登录,大约将自己以后的 ID 添加进 db2grp1 组中。
![](https://www.ibm.com/i/v14/rules/blue_rule.gif)
![](https://www.ibm.com/i/c.gif)
![](https://www.ibm.com/i/c.gif)
获得 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
![](https://www.ibm.com/i/v14/rules/blue_rule.gif)
![](https://www.ibm.com/i/c.gif)
![](https://www.ibm.com/i/c.gif)
获得 SYSMAINT 权限
拥有 SYSMAINT 权限的用户可以收回的敕令是拥有 SYSCTRL 权限的用户可以收回的敕令的子集。SYSMAINT 用户只能实行与维护相干的任务,比如:
db2start/db2stop
db2 backup/restore/rollforward database
db2 runstats
(针对任何表)db2 update db cfg for database dbname
细致,拥有 SYSMAINT 权限的用户不能树立或删除数据库或表空间。他们也不能造访数据库中的任何数据,除非他们被显式地授予造访数据所需的特权。
如果您拥有 SYSADM 权限,那么可以行使以下敕令将 SYSMAINT 权限分拨给一个组:
db2 update dbm cfg using SYSMAINT_GROUP group name
![](https://www.ibm.com/i/v14/rules/blue_rule.gif)
![](https://www.ibm.com/i/c.gif)
![](https://www.ibm.com/i/c.gif)
获得 DBADM 权限
DBADM 权限是一个数据库级权限,而不是实例级权限。DBADM 用户对一个数据库有简直完全的控制才干。DBADM 用户不能实行某些维护或经管任务,比如:
drop database
drop/create tablespace
backup/restore database
update db cfg for database db name
但是,他们可以实行以下任务:
db2 create/drop table
db2 grant/revoke
(任何特权)db2 runstats
(任何表)
DBADM 用户还被主动地授予对数据库东西及其内容的完备特权。由于 DBADM 权限是一个数据库级权限,所以它可以被分拨给用户和用户组。以下敕令演示授予 DBADM 权限的不合体式名目。
db2 create database test
这个敕令将数据库 test 上的 DBADM 权限隐式地授予收回此敕令的用户。
db2 connect to sample
db2 grant dbadm on database to user tst1这个敕令只能由 SYSADM 用户收回;它向用户 tst1 授予示例数据库上的 DBADM 权限。细致,在授予 DBADM 权限之前,收回这个敕令的用户必需连接到示例数据库。
db2 grant dbadm on database to group db2grp1
这个敕令将 DBADM 权限授予 db2grp1 组中的每个用户。非常,只需 SYSADM 用户可以收回这个敕令。
![](https://www.ibm.com/i/v14/rules/blue_rule.gif)
![](https://www.ibm.com/i/c.gif)
![](https://www.ibm.com/i/c.gif)
获得 LOAD 权限
LOAD 权限是一个数据库级权限,所以它可以被分拨给用户和用户组。望文生义,LOAD 权限答应用户对表收回 LOAD 敕令。当用少量数据添补表时,LOAD 敕令平常用来替代拔出或导入敕令,它的速率更快。凭证您盼望实行的 LOAD 操纵类型,仅仅拥有 LOAD 权限可以还不够。可以还需要表上的特定特权。
拥有 LOAD 权限的用户可以运转以下敕令:
db2 quiesce tablespaces for table
db2 list tablespaces
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 权限。以下示例演示 LOAD 权限若何答应我们的用户行使 LOAD
敕令将数据装载进 sales 表中。假定曾经收回了敕令 db2 connect to sample
。
db2 grant load on database to user tst1
db2 grant insert on table sales to user tst1有了 LOAD 权限和拔出特权,tst1 就可以对 sales 表收回
LOAD INSERT
或LOAD RESTART
,大约在LOAD INSERT
之后收回TERMINATE
。
db2 grant load on database to group grp1
db2 grant delete on table sales to group grp1
db2 grant insert on table sales to group grp1有了 LOAD 权限以及删除和拔出特权,grp1 的任何成员就可以对 sales 表收回
LOAD REPLACE
或LOAD RESTART
,大约在LOAD REPLACE
之后收回TERMINATE
。
版权声明: 原创作品,答应转载,转载时请务必以超链接体例标明文章 原始理由 、作者信息和本声明。不然将究查轨则责任。