数据库管理权限 (DBADM)
DBADM 权限是对特定数据库的管理权限。 数据库管理员拥有创建对象和发出数据库命令所需的特权。 DBADM 权限对系统目录表和视图具有 SELECT 特权,并且可以运行所有内置 Db2® 例程 (审计例程和 SET_MAINT_MODE_RECORD_NO_TEMPORALHISTORY 过程除外)。
DBADM 权限只能由安全性管理员(拥有 SECADM 权限)授予或撤销,并且可授予用户、组或角色。 PUBLIC 无法直接或间接获取 DBADM 权限。
- 创建、改变和删除与安全性不相关的数据库对象
- 读取日志文件
- 创建、激活和删除事件监视器
- 查询表空间的状态
- 更新日志历史记录文件
- 停顿表空间
- 使用任何表空间
- 重新组织表
- 使用 RUNSTATS 实用程序收集目录统计信息
SQLADM 权限和 WLMADM 权限包含在 DBADM 权限中。 WLMADM 权限还能够授予对工作负载的 USAGE 特权。
利用 DBADM 权限来授予 DATAACCESS 权限
安全性管理员可以指定数据库管理员是否能够访问数据库中的数据。 DATAACCESS 权限是允许对特定数据库中的数据进行访问的权限。 安全性管理员可以使用 GRANT DBADM ON DATABASE 语句的 WITH DATAACCESS 选项来为数据库管理员提供此功能。 如果既未指定 WITH DATAACCESS 选项也未指定 WITHOUT DATAACCESS 选项,那么缺省情况下会授予 DATAACCESS 权限。
要授予不带 DATAACCESS 权限的数据库管理员权限,请在 SQL 语句中使用 GRANT DBADM WITHOUT DATAACCESS。
利用 DBADM 权限来授予 ACCESSCTRL 权限
安全性管理员可以指定数据库管理员是否能够在数据库中授予和撤销特权。 ACCESSCTRL 权限是允许用户在特定数据库中授予和撤销特权以及非管理权限的权限。 安全性管理员可以使用 GRANT DBADM ON DATABASE 语句的 WITH ACCESSCTRL 选项来为数据库管理员提供此功能。 如果既未指定 WITH ACCESSCTRL 选项也未指定 WITHOUT ACCESSCTRL 选项,那么缺省情况下会授予 ACCESSCTRL 权限。
要授予不带 ACCESSCTRL 权限的数据库管理员权限,请在 SQL 语句中使用 GRANT DBADM WITHOUT ACCESSCTRL。
撤销 DBADM 权限
GRANT DBADM ON DATABASE TO user1
缺省情况下,还会将 DATAACCESS 和 ACCESSCTRL 权限授予 user1。
REVOKE DBADM ON DATABASE FROM user1
现在,user1 不再拥有 DBADM 权限,但是仍然拥有 DATAACCESS 和 ACCESSCTRL 权限。
REVOKE ACCESSCTRL, DATAACCESS ON DATABASE FROM user1
DBADM 权限在先前发行版中的差别
在 Db2 9.7中,已更新授权模型以明确区分系统管理员,数据库管理员和安全性管理员的职责。 作为此增强的一部分,由 DBADM 权限提供的功能已更改。 在 Db2 9.7之前的发行版中, DBADM 权限自动包含访问数据以及授予和撤销数据库特权的能力。 在 Db2 9.7中,这些功能由新权限 DATAACCESS 和 ACCESSCTRL 提供,如前所述。
- BINDADD
- CONNECT
- CREATETAB
- CREATE_EXTERNAL_ROUTINE
- CREATE_NOT_FENCED_ROUTINE
- IMPLICIT_SCHEMA
- QUIESCE_CONNECT
- LOAD
在 Db2 9.7中,这些权限现在是 DBADM 权限的一部分。 在 Db2 9.7中撤销 DBADM 权限时,这些权限将丢失。
但是,如果用户在升级到 Db2 9.7时拥有 DBADM 权限,那么如果撤销 DBADM 权限,那么这些权限不会丢失。 如果在 Db2 9.7 中撤销 DBADM 权限,那么仅当用户通过持有在 Db2 9.7中授予的 DBADM 权限来获取这些权限时,用户才会失去这些权限。