敏感标记
为实现强制访问控制功能,数据库管理系统应维护主体和客体相关的敏感标记,为主体和客体划分安全级。这些敏感标记是等级分类和非等级类别的组合,是实施强制访问控制的依据。
等级分类
Vastbase内置了16个等级分类,命名为Li,其中(1≤i≤16),等级标记满足偏序关系(若i≤j,则Li ≤ Lj)。
非等级类别
Vastbase内置了32个非等级类别,命名为Gi,其中(1≤i≤32)。非等级标记无法进行大小比较,但可以进行集合运算。例如非等级标记”G1,G3”包含”G1”。
敏感标记
Vastbase中敏感标记由等级分类和非等级类别两部分组成,两者中间用冒号(”:“)分隔,形式如下:
等级分类组:非等级类别组
其中等级分类组由多个等级分类组成,非等级类别组由多个非等级类别组成。等级分类和非等级类别之间用逗号(”,“)分隔,用点号(”.“)表示区间。
例如敏感标记”L1,L3.L7:G2,G4.G6,G27”表示的等级分类和非等级类别分别为:
等级分类:L~1~,L~3~~L~7~
非等级类别:G~2~,G~4~~G~6~,G~27~
设置表列的敏感标记
语法格式
表列:
SECURITY LABEL [FOR provider] ON COLUMN table_name.column_name IS 'label_name'; --设置表列的敏感标记
SECURITY LABEL [FOR provider] ON COLUMN table_name.column_name IS NULL; --删除表列的敏感标记
存储过程:
SECURITY LABEL [ FOR vastbase ] ON PROCEDURE procedure_name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] IS 'label_name' | NULL;
触发器:
SECURITY LABEL [ FOR vastbase ] ON TRIGGER object_name OF table_name IS 'label_name'' | NULL;
参数说明
label_name:敏感标记名称,在数据库中是唯一的,其长度不能超过63个字节,所有的非关键字、非保留关键字、可以做字段名称的关键字均可作为敏感标记名称。
provider:插件,数据库通过将插件(如果有)和数据库默认加载的插件ogmac组成链表。