CREATE SECURITY POLICY 语句

使用 CREATE SECURITY POLICY 语句在当前数据库中定义新的安全策略,标识它的安全标签组件和存取规则。只有 GBase 8s 支持此语句。

该语句是 SQL ANSI/ISO 标准的扩展。

语法

元素 描述 限制 语法
component 安全标签组件 必须已经存在于数据库中,且在此 policy 的组件名称中必须唯一 标识符
policy 此处声明的安全策略名称 在数据库中安全策略的名称中必须唯一 标识符

用法

安全策略是存储以下信息的已命名的数据库对象:
  • 它定义包括安全标签的安全标签组件集。
  • 它将存取规则集合与安全标签关联。
对于由安全策略保护的表,该存取规则使 GBase 8s 比较具有一列或行的安全标签的用户的安全凭证。安全策略应用于确定拥有给定安全标签的用户是否可以向被安全标签标号的行或列读取或写入数据。安全策略对不具有安全标签的数据没有作用。

同一时刻一个表只能连接一个安全策略,并且一个安全策略只能包含不超过 16 个安全标签组件。

如果您包含可选的 IF NOT EXISTS 关键字,则当指定名称的安全策略已经在当前数据库中注册时,数据库服务器不采取操作(而非向应用程序发发送异常)。

只有 DBSECADM 能发出此语句。当 CREATE SECURITY POLICY 已经执行成功, GBase 8s 会对当前数据库的系统目录做出以下更改:
  • syssecpolicies 表中注册指定的 policy 名称和其安全标签组件的敏感性;
  • 为每个 componentsyssecpolicycomponentrules 表中的创建新行。
1 不能指定超过 16 个组件。