DBSECADM 子句

GRANT DBSECADM 语句使得被授予 DBSECADM 角色的用户能够发出 DDL 语句,可创建、更改、重命名或删除安全对象,包括安全策略、安全标签和安全组件。

DBSECADM 子句

元素 描述 限制 语法
user 被授予该角色的用户 必须为用户的权限标识符 所有者名称

DBSECADM 角色是仅 DBSA 可授予的内建的角色。用户定义的角色的范围是创建该角色所在的数据库,与用户定义的角色不同,BSECADM 角色的范围是 GBase 8s 实例的所有数据库。在同一服务器的其他数据库中,DBSA 不必重新发出 GRANT DBSECADM 语句,就像 GBase 8s 的所有内建的角色一样,当授予 DBSECADM 角色时,即启用该角色,无需通过 SET ROLE 语句激活,且保持有效直到被取消为止。

仅持有 DBSECADM 角色的用户可发出下列创建或修改安全对象的 SQL 语句:
  • ALTER SECURITY LABEL COMPONENT
  • CREATE SECURITY LABEL
  • CREATE SECURITY LABEL COMPONENT
  • CREATE SECURITY POLICY
  • DROP SECURITY LABEL
  • DROP SECURITY LABEL COMPONENT
  • DROP SECURITY POLICY
  • RENAME SECURITY LABEL
  • RENAME SECURITY LABEL COMPONENT
  • RENAME SECURITY POLICY
仅持有 DBSECADM 角色的用户可使用下列 SQL 语句来引用那些被安全策略保护的表:
  • ALTER TABLE ... ADD SECURITY POLICY
  • ALTER TABLE ... ADD ... IDSSECURITYLABEL [DEFAULT label]
  • ALTER TABLE ... ADD ... [COLUMN] SECURED WITH
  • ALTER TABLE ... DROP SECURITY POLICY
  • ALTER TABLE ... MODIFY ... [COLUMN] SECURED WITH
  • ALTER TABLE ... MODIFY ... DROP COLUMN SECURITY
  • CREATE TABLE ... COLUMN SECURED WITH
  • CREATE TABLE ... IDSSECURITYLABEL [DEFAULT label]
  • CREATE TABLE ... SECURITY POLICY
不持有 DBSECADM 角色的用户也不可发出下列 GRANT 和 REVOKE 语句:
  • GRANT EXEMPTION
  • GRANT SECURITY LABEL
  • GRANT SETSESSIONAUTH
  • REVOKE EXEMPTION
  • REVOKE SECURITY LABEL
  • REVOKE SETSESSIONAUTH

可跟在 TO 关键字之后的 USER 关键字是可选的,且没有作用,但 DBSA 在 GRANT DBSECADM 中指定的任何授权标识符都必须是单个用户的标识符,而不是角色或 PUBLIC 组的标识符。

user 可为发出此 GRANT DBSECADM 语句的 DBSA。这是对通用限制的一个重要例外,通用限制是指 GRANT 语句的 TO 子句(就如 REVOKE 语句中的 FROM 子句一样)不可显式地引用发出该语句的用户的授权标识符。与其他角色不同,GRANT 语句可指定访问权限、用户安全标签和规则的豁免,您可给自己授予 DBSECADM 角色,如果您是用户 gbasedbt,或 DBSA 组的成员或(在 Windows™ 上)如果您是 GBasedbt-Admin 组的成员。

在下列示例中,DBSA 将 DBSECADM 角色授予用户 niccolo
GRANT DBSECADM TO niccolo;
如果此语句成功地执行,则用户 niccolo 可执行以上罗列的 LBAC 操作,如果 niccolo 还持有对数据库和对于那些 SQL 语句引用的数据库对象的自主访问权限的话。

授予用户 DBSECADM 角色之后,仅 DBSA 可取消它。

要了解对 LBAC 安全对象的讨论,请参阅您的 GBase 8s 安全指南