GBase 8s CREATE SECURITY POLICY 语句

143 篇文章 3 订阅
142 篇文章 0 订阅

使用 CREATE SECURITY POLICY 语句在当前数据库中定义新的安全策略,标识它的安全标签组
件和存取规则。只有 GBase 8s 支持此语句。
该语句是 SQL ANSI/ISO 标准的扩展。
语法
在这里插入图片描述

用法
安全策略是存储以下信息的已命名的数据库对象:
 它定义包括安全标签的安全标签组件集。
 它将存取规则集合与安全标签关联。
对于由安全策略保护的表,该存取规则使 GBase 8s 比较具有一列或行的安全标签的用户的安全凭证。
安全策略应用于确定拥有给定安全标签的用户是否可以向被安全标签标号的行或列读取或写入数据。
安全策略对不具有安全标签的数据没有作用。
同一时刻一个表只能连接一个安全策略,并且一个安全策略只能包含不超过 16 个安全标签组件。
如果您包含可选的 IF NOT EXISTS 关键字,则当指定名称的安全策略已经在当前数据库中注册时,
数据库服务器不采取操作(而非向应用程序发发送异常)。
只有 DBSECADM 能发出此语句。当 CREATE SECURITY POLICY 已经执行成功, GBase 8s 会
对当前数据库的系统目录做出以下更改:
 在 syssecpolicies 表中注册指定的 policy 名称和其安全标签组件的敏感性;
 为每个 component 在 syssecpolicycomponentrules 表中的创建新行。
安全策略的安全标签组件
CREATE SECURITY POLICY 语句必须指定至少一个(但不多于 16 个)安全标签组件。这些组件
必须已经在当前数据库中存在,DBSECADM 可使用 CREATE SECURITY LABEL COMPONENT
语句注册它们。相同的组件名称在同一 CREATE SECURITY POLICY 语句中不能指定两次。
请参阅 CREATE SECURITY LABEL COMPONENT 章节以获取有关安全标签组件的结构和语义的
更多信息。
与安全策略相关的规则
WITH IDSLBACRULES 关键字指定新安全策略执行的读访问权规则和写访问权规则。如果您没有指
定它们,则这些关键字缺省生效,因为 IDSLBACRULES 存取规则安全策略唯一支持的存取规则。
以下是 IDSLBACRULES 读访问权规则,称为 IDSLBACREAD ,当在 SELECT 、 UPDATE 或 DELETE 操
作中从被标签的列或 列中读取数据值时应用此规则:
 IDSLBACREADARRAY:用户安全标签的每个 array 组件必须大于或等于数据行安全标签
的 array 组件。也就是说,只有等于或低于用户级别的数据能被读取。
 IDSLBACREADTREE:用户安全标签的每个 tree 组件在数据行安全标签(或一个类似此
元素的祖先)的 tree 组件中必须包含至少一个元素。
 IDSLBACREADSET::用户安全标签的每个 SET 组件必须包含数据行安全标签的 SET 组
件。
以下是 IDSLBACRULES 写访问权规则,称为 IDSLBACWRITE ,当在 INSERT 、UPDATE 或 DELETE
操作中向被标签的列或行中写入数据值时应用此规则:
 IDSLBACWRITEARRAY:用户安全标签的每个 array 组件必须等于数据行安全标签的
array 组件。即,只能写入与用户相同级别的数据。
 IDSLBACWRITETREE:用户安全标签的每个 tree 组件在数据行安全标签(或一个类似此
元素的祖先)的 tree 组件中必须包含至少一个元素。
 IDSLBACWRITESET:用户安全标签的每个 SET 组件必须包含数据行安全标签的 SET
组件。
如果 DBSECADM 省略 WITH IDSLBACRULES 关键字,则这些规则缺省生效。然而,如果 WITH
关键字之后跟随除 IDSLBACRULES 值之外的任何规范,则 CREATE SECURITY POLICY 语句发
生错误而失败,且不会创建安全策略。
除了显式或缺省 WITH IDSLBACRULES 关键字,CREATE SECURITY POLICY 语句还必须指定当用户未
授权写入由安全策略保护的表 DELETE 、INSERT 或 UPDATE 语句中提供的显式指定的安全标签时,
执行此写访问规则。用户的安全标签和用户持有的豁免凭证可确定用户是否对显式提供的安全标签
具有写访问权。
 如果 CREATE SECURITY POLICY 语句指定 OVERRIDE NOT AUTHORIZED WRITE
SECURITY LABEL ,则 GBase 8s 使用此用户安全标签的值,而非 DELETE 、INSERT 或
UPDATE 语句中显式指定的安全标签,来确定用户是否具有对 DELETE 、 INSERT 或
UPDATE 操作中安全标签保护的数据值的写访问权。
 缺省为 RESTRICT NOT AUTHORIZED WRITE SECURITY LABEL 。如果您显式地指定这
些关键字,或者如果它们缺省生效,当用户没有被授权在有此显式指定的安全标签中行或列
中写入数据时,DELETE 、INSERT 或 UPDATE 语句失败。
以下示例创建了名为 MegaCorp 的安全策略,它使用三个安全标签,没有为用户安全标签设置
OVERRIDE 。以便在 DELETE 、INSERT 或 UPDATE 操作中对明确指定的标签不授权该用户的
写访问权的数据提供写访问。
CREATE SECURITY POLICY MegaCorp
COMPONENTS levels, compartments, groups
WITH IDSLBACRULES;
要使此示例有效,levels 、compartments 和 groups 安全标签组件(或者已被重命名为这些标识
符的组件)必须在先前的 CREATE SECURITY LABEL COMPONENT 语句定义。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值