GRANT DBSECADM 语句使得被授予 DBSECADM 角色的用户能够发出 DDL 语句,可创建、更改、重命名或删除安全对象,包括安全策略、安全标签和安全组件。
元素 |
描述 |
限制 |
语法 |
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 安全指南。