达梦数据库策略应用

1.如何创建策略

1.1 策略的组成

策略是一组预定义的标记组件,包括等级、范围和组这三种组件,三种组件分别从不同的维度对数据进行了描述。一个策略最多只能包含这三种组件,其中必须包含等级,范围和组可以缺省。

等级(Level)
等级是线性有序的名称序列,用 L=(l1,l2,…,lp)表示。其中 li(1≤i≤p)表示第 i 个名称,任意两个名称 li、lj 之间,若 i≤j,则 li≤lj,于是有 l1≤l2≤…≤lp,其中 l1,l2,…,lp 称为等级分类(以下简称等级)。在 DM 中,一个策略最大可定义 10000 个等级。用户在定义策略中的等级时,需要为其指定编号,其编号在 0-9999 之间(编号小的意味着级别较低)。

范围(Compartment)
范围是集合类型,设集合 C={c1,c2,…,cm}中每一元素都是一名称,c1,c2,…,cm 间彼此独立,无序,则集合 C 及其任意子集称为非等级类别集合,其中 c1,c2,…,cm 称为非等级类别(以下简称为范围)。
在 DM 中,最大可定义 10000 个范围,需要用户设置编号,且编号在一个策略里面须是唯一的,编号之间没有级别高低之分。

组(Group)
组为树形结构,有父子之分,可以用来描述组织结构。
设树 G={g1,g2,…,gm},其中每一元素都是一名称,g1,g2,…,gm 间有父子之分,则 g1,g2,…,gm 称为组。
在 DM 中,最多能定义 10000 个组,也就是说组织结构的层次最多为 10000。组中只能有一个根组,除根组外,每个组有且仅有一个父组。

1.2创建、修改与删除策略

创建策略
使用如下系统过程创建一个策略。
MAC_CREATE_POLICY(
POLICY_NAME VARCHAR(128)
);

参数说明:
POLICY_NAME 新创建的策略名称

使用说明:
只有具有 LABEL_DATABASE 数据库权限的用户才能执行此操作。
例如,创建策略 P_01
MAC_CREATE_POLICY('P_01');

修改策略
可以使用下面的系统过程修改一个策略的策略名。
MAC_ALTER_POLICY(
POLICY_NAME VARCHAR(128),
NEW_NAME VARCHAR(128)
);

参数说明:
POLICY_NAME 待修改的策略名称
NEW_NAME 将修改成的策略名称

使用说明:
只有具有 LABEL_DATABASE 数据库权限的用户才能执行此操作。

例如,将策略 P_01 改名为 P_02。
MAC_ALTER_POLICY('P_01', 'P_02');

删除策略
可以使用下面的系统过程删除一个已存在的策略。
MAC_DROP_POLICY(
POLICY_NAME VARCHAR(128),
DROP_COLUMN INT
);

参数说明:
POLICY_NAME 待删除的策略名称
DROP_COLUMN 对应用此策略的表的标记列的处理方式,取值为 0 或 1
0:不删除应用此策略的所有表对应的标记列
1:删除应用此策略的所有表对应的标记列
若 DROP_COLUMN 为 NULL,则按默认为 0 进行处理

使用说明:
1. 只有具有 LABEL_DATABASE 数据库权限的用户才能执行此操作;
2. 指定待删除策略必须存在。

例如,删除策略 P_02。
MAC_DROP_POLICY('P_02');

2.为策略添加组件

创建一个策略后,需要对策略添加组件,这样策略才可以被应用到表和用户上。

2.1为策略添加等级

使用下面的系统过程为指定的策略添加等级。
MAC_CREATE_LEVEL(
POLICY_NAME VARCHAR(128),
LEVEL_NUM INT,
LEVEL_NAME VARCHAR(128)
);

参数说明:
POLICY_NAME 要添加等级的策略名
LEVEL_NUM 创建的等级编号,在 0-9999 之间的整数
LEVEL_NAME 创建的等级名称

使用说明:
1. LEVEL_NAME 不能包含“:”和“,”;
2. 该过程只能由具有 LABEL_DATABASE 的用户调用;
3. 指定策略必须存在;
4. 同一个策略中,等级 ID 和等级名称唯一;
5. 一个策略最多可以定义 10000 个等级;
6. 每个等级都要有一个等级 ID,ID 越小表示安全等级越低。

例如,创建策略 P_03,并给策略 P_03 添加等级 L_01,等级编号为 10。
MAC_CREATE_POLICY('P_03');
MAC_CREATE_LEVEL('P_03', 10, 'L_01');
在为策略添加等级后,还可以通过系统过程修改等级名称和删除等级。

修改等级
修改等级名称的系统过程如下:
MAC_ALTER_LEVEL(
POLICY_NAME VARCHAR(128),
LEVEL_N
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值