数据库安全约束处理与推理控制设计
1. 数据库安全约束类型
1.1 基于属性的安全约束
当关系 R 的属性 Ai 为非机密(Unclassified)时,属性 Aj 为机密(Secret)。例如,对于关系 SHIP(S#, SNAME, CAPTAIN, M#),若 Level(SNAME) = Unclassified,则 Level(CAPTAIN) = Secret。
1.2 模糊约束
模糊约束使用模糊值,可与其他类型的约束关联。示例如下:
对于关系 R(A1, A2, …, An),若 COND(Value(B1, B2, …, Bm)) 成立,则 Level(Ai1, Ai2, …, Ait) = Secret 且 Fuzzyvalue = r。
以 SHIP(S#, SNAME, CAPTAIN, M#) 为例,当 Value(SNAME) = Washington 时,Level(CAPTAIN) = Secret 且 Fuzzyvalue = 0.8。
1.3 复杂约束
上述约束多作用于单个关系,而复杂约束可跨关系实施。示例如下:
R1(A1, A2, …, An) & R2(B1, B2, …, Bm) & R1.Ai = R2.Bj 时,Level(Together(Ak, Bp)) = Secret。
以 SHIP(S#, SNAME, CAPTAIN, M#) 和 MISSION(M#, MNAME, LOCATION) 为例,当 SHIP.M# = MISSION.M# 时,Level(Together(SNAME, MNAME