GRANT语句(系统权限)

GRANT语句的这种形式授予系统权限。

GRANT(系统权限)的语法

阅读语法图跳过可视化语法图 GRANT ,ACCESSCTRLARCHIVEBINDADDBINDAGENTBSDSCREATEALIASCREATEDBACREATEDBCCREATESGCREATETMTABCREATE_SECURE_OBJECTDATAACCESSDBADM1WITH ACCESSCTRLWITHOUT ACCESSCTRLWITH DATAACCESSWITHOUT DATAACCESSDEBUGSESSIONDISPLAYEXPLAINMONITOR1MONITOR2RECOVERSQLADMSTOPALLSTOSPACESYSADMSYSCTRLSYSOPRTRACE ON SYSTEM TO ,授权名称ROLE角色名称PUBLIC WITH GRANT OPTION2
注意:
  • 1 ACCESSCTRL和DATAACCESS子句可以以任何顺序指定。
  • 2 可以选择“带授权”选项,但DBADM、DATAACCESS和ACCESSCTRL忽略该选项。 如果SECADM机构发放了BINDAGENT授权,则WITH GRANT OPTION选项也会被忽略。

GRANT(系统权限)描述

ACCESSCTRL
授予ACCESSCTRL权限。 ACCESSCTRL允许用户授予除系统DBADM、DATAACCESS、ACCESSCTRL以及安全相关对象权限外的所有权限和特权。

如果在授予此权限时指定了“带授权选项”,则会发出警告。

ACCESSCTRL不能授予PUBLIC。

ARCHIVE
授予使用ARCHIVE LOG和SET LOG命令的权限。
BINDADD
使用BIND子命令和ADD选项创建计划和套餐。
粘合剂
FL 500 允许代表授权人发出 BIND、FREE PACKAGE 或 REBIND 命令,以及 DROP PACKAGE 语句。 该特权还允许持有人代表设保人复制和替换计划和方案。

如果在授予此权限时指定了“带授权选项”,则会发出警告。

更改开始当使用SECADM权限授予BINDAGENT时,它授予通过指定任何所有者来为计划和包发出BIND或REBIND命令的权限。更改结束

更改开始SECADM授予BINDAGENT的权限不允许以下操作:
  • 重新绑定包裹或计划,无需指定OWNER关键字
  • 免费套餐或免费计划
  • 复制包
  • DROP PACKAGE
更改结束

更改开始使用SECADM权限,无法将BINDAGENT权限授予PUBLIC。更改结束

更改开始如果在使用SECADM权限授予此权限时指定了“带授权选项”,则该选项将被忽略。更改结束

BSDS
授予发出恢复BSDS命令的权限。
创建别名
授予使用CREATE ALIAS语句的权限。
CREATEDBA
授予发布CREATE DATABASE语句的权限,并获得对这些数据库的DBADM权限。
创建于BC
授予发布CREATE DATABASE语句的权限,并获得对这些数据库的DBCTRL权限。
CREATESG
授予创建新存储组的权限。
创建时间表
授予使用CREATE GLOBAL TEMPORARY TABLE语句的权限。
CREATE_SECURE_OBJECT
授予创建安全对象的权限。
DATAACCESS
更改开始授予数据访问权限。 DATAACCESS允许用户访问 Db2 子系统中所有用户表、视图、具体化查询表和全局变量的数据,并允许用户执行计划、包、函数和过程以及使用序列。

更改开始DATAACCESS权限隐式包含对所有目录表的SELECT权限,并隐式包含对可更新目录表的INSERT、DELETE和UPDATE权限,但 SYSIBM.SYSAUDITPOLICIES 目录表除外。更改结束

如果在授予此权限时指定了“带授权选项”,则会发出警告。

数据访问权限不能授予公众。

更改结束
DBADM
授予DBADM权限。 DBADM允许用户管理 Db2 子系统中的所有对象,但安全对象除外。

如果在授予此权限时指定了“带授权选项”,则会发出警告。

DBADM 不得授予 PUBLIC。

WITH ACCESSCTRL
指定ACCESSCTRL权限与系统DBADM权限同时授予。 ACCESSCTRL允许系统DBADM授予除系统DBADM、DATAACCESS、ACCESSCTRL权限和特权以外的所有权限和特权,以及与安全相关的对象。 ACCESSCTRL可以使用BY子句来撤销权限。

默认值为ACCESSCTRL。

WITHOUT ACCESSCTRL
指定系统DBADM权限不授予ACCESSCTRL权限。
WITH DATAACCESS
指定DATAACCESS权限与系统DBADM权限同时授予。 DATAACCESS允许系统DBADM访问 Db2 子系统中所有用户表、视图和具体化查询表中的数据,并允许用户执行计划、包、函数和过程。

默认值为“数据访问”。

WITHOUT DATAACCESS
指定系统DBADM权限不授予DATAACCESS权限。
显示
更改开始授予发出DISPLAY命令的权限,但以下情况除外:
  • 显示动态捕捉
  • 显示ML
  • 显示概要文件
  • 显示限制

DISPLAY UTILITY命令无需授权。

更改结束
调试
授予将调试客户端附加到当前应用程序进程连接的权限,从而能够对会话中执行的本机 SQL 或 Java™ 过程进行客户端应用程序调试。
EXPLAIN
授予无需执行语句所需的权限即可发布以下内容的权限:
  • EXPLAIN语句选项:
    • PLAN
    • 全部
  • PREPARE 语句
  • 描述表语句
  • 解释在特殊寄存器CURRENT EXPLAIN MODE下执行的动态SQL语句,当CURRENT EXPLAIN MODE = EXPLAIN时
  • 绑定选项:EXPLAIN(ONLY)和SQLERROR(CHECK)

    EXPLAIN(ONLY)允许对语句进行解释。

    SQLERROR(CHECK)对绑定SQL语句进行语法和语义检查。

MONITOR1
授予获取IFC数据的权限,这些数据被归类为可用性数据、统计、会计和其他不包含潜在安全数据的性能数据。
MONITOR2
授予获取IFC数据的权限,这些数据被归类为包含潜在敏感数据,例如SQL语句文本和审计数据。 拥有 MONITOR2 权限的用户也拥有 MONITOR1 权限。
恢复
授予发出“恢复怀疑”命令的权限。
SQLADM
授权无需任何额外权限即可执行以下操作:
  • 描述表语句
  • EXPLAIN语句,有以下选项:
    • PLAN
    • 全部
    • STMTCACHE 全部
    • STMTID
    • STMTTOKEN
    • 监控的STMTS
  • PREPARE 语句
  • 解释在特殊寄存器CURRENT EXPLAIN MODE下执行的动态SQL语句,当CURRENT EXPLAIN MODE = EXPLAIN时
  • 绑定选项:EXPLAIN(ONLY)和SQLERROR(CHECK)

    EXPLAIN(ONLY)允许对语句进行解释。

    SQLERROR(CHECK)对绑定SQL语句进行语法和语义检查。

  • 更改开始启动 DYNQUERYCAPTURE 命令更改结束
  • 更改开始启动ML命令更改结束
  • 更改开始START PROFILE 命令更改结束
  • 更改开始START TRACE 命令更改结束
  • 更改开始STOP DYNQUERYCAPTURE 命令更改结束
  • 更改开始STOP ML 命令更改结束
  • 更改开始STOP PROFILE 命令更改结束
  • 更改开始STOP TRACE 命令更改结束
  • 更改开始显示 DYNQUERYCAPTURE 命令更改结束
  • 更改开始显示ML命令更改结束
  • 显示配置文件命令
  • 在任何数据库中执行RUNSTATS实用程序和MODIFY STATISTICS实用程序。
  • MONITOR2 有权获取被列为包含潜在敏感数据的IFC数据,例如SQL语句文本和审计数据,以及被列为可用性数据、统计、会计和其他性能数据的IFC数据。
STOPALL
授予发出STOP DB2 命令。
STOSPACE
授予使用STOSPACE实用程序的权限。
SYSADM
授予所有 Db2 权限,但安装SYSADM权限保留的少数权限除外。 用户可以授予的权限包括系统管理员权限本身。 用户缺少的权限限制了用户可以对目录和目录进行操作。 在授予SYSADM权限时使用“带授权选项”是多余的,但有效。 有关 SYSADM 和安装 SYSADM 权限的更多信息,请参阅管理管理权限
SYSCTRL
授予系统控制权限,允许用户拥有系统管理员的大部分权限,但不包括读取或更改用户数据的权限。 在授予SYSCTRL时使用WITH GRANT OPTION是多余的,但有效。 有关 SYSCTRL 权限的更多信息,请参阅 SYSCTRL 管理权限
系统管理员
授予系统操作员权限。
跟踪
授予发出修改跟踪、开始跟踪和停止跟踪命令的权限。
ON SYSTEM
标识系统特权已授予整个 Db2 子系统。
TO
请参阅 GRANT语句 ,了解TO子句的说明。
WITH GRANT OPTION
如果您授予 SYSADM 或 SYSCTRL 系统权限,则 WITH GRANT OPTION 选项有效但并非必要。 这是不必要的,因为无论谁获得了 SYSADM 或 SYSCTRL 权限,都拥有该权限及其附带的所有特权,并带有 GRANT 选项。

GRANT(系统权限)示例

示例 1
向用户LUTZ授予显示权限。
   GRANT DISPLAY
     TO LUTZ;
示例 2
使用“带授权选项”功能,向用户PARKER和SETRIGHT授予BSDS和RECOVER权限。
   GRANT BSDS,RECOVER
     TO PARKER,SETRIGHT
     WITH GRANT OPTION;
示例 3
为所有本地用户授予TRACE权限。
   GRANT TRACE
     TO PUBLIC;
示例 4
为角色授予ARCHIVE权限 ROLE1:
   GRANT ARCHIVE TO ROLE ROLE1;
示例 5
SECADM Linda授予Steve创建安全对象的权限:
   GRANT CREATE_SECURE_OBJECT 
		TO STEVE;
示例 6
授权系统 DBADM,带有 ACCESSCTRL 和 DATAACCESS,角色为 ADMINROLE,授权为 SALLY。 由于GRANT系统DBADM默认授予ACCESSCTRL和DATAACCESS权限,因此无需明确指定WITH ACCESSCTRL和WITH DATAACCESS子句。
   GRANT DBADM ON SYSTEM 
		TO ROLE ADMINROLE;
	GRANT DBADM, ACCESSCTRL, DATAACCESS 
		ON SYSTEM 
		TO SALLY;
示例 7
将没有ACCESSCTRL和DATAACCESS的Grant系统DBADM授予John。 需要明确指定“无访问控制”和“无数据访问”子句。
   GRANT DBADM WITHOUT ACCESSCTRL 
		WITHOUT DATAACCESS 
		ON SYSTEM 
		TO JOHN;