基于RDF的XML推理控制与递归SQL查询优化
立即解锁
发布时间: 2025-08-23 00:54:10 阅读量: 2 订阅数: 20 

### 基于RDF的XML推理控制与递归SQL查询优化
#### 基于RDF的XML推理控制
在XML文档的安全管理中,为了更好地实现推理控制,我们提出了一种基于RDF改进访问控制模型的新方法。
##### 访问控制的改进
- **敏感对象及其授权**:我们使用对象ID(OID)来区分不同的XML对象,而非使用URI识别Web资源及其语义关系。
- **XML对象定义**:简单XML对象是由文档路径表达式定位,且仅被RDF语句封装一次的子树;关联XML对象由路径表达式定位,是简单对象和/或其他关联对象的组合。
- **示例**:如文档中的简单对象SO01(定位:name/Alice,类型:SIMPLE - OBJECT);关联对象AO01(关联根:hospital/patient,组件:{SO01, SO02},类型:ASSC - OBJECT)。
- **XML授权**:XML授权是描述主体、类型和对象的RDF语句,类型分为正授权和负授权,分别用“+”和“ - ”表示。例如,“疾病AIDS对用户US01敏感”的授权为AU01(用户:US01,访问类型: - ,对象:SO03,类型:AUTHORIZATION)。
- **改进措施**:上述面向对象的模型虽能简化敏感信息规范,但当安全需求扩展时会出现冗余。因此,我们引入XML类型的概念。
- **XML类型定义**:简单XML类型类似于简单XML对象,但不包含叶节点;关联XML类型由简单类型和/或其他关联类型组成,使用TID相互识别。
- **示例**:如简单类型ST01(定位:name,类型:SIMPLE - TYPE);关联类型AT01(关联根:hospital/patient,组件:{ST01, ST02},类型:ASSC - TYPE)。通过对XML对象进行类型抽象,可避免安全策略中的冗余。同时,XML类型也是描述文档语义关系的基础。
##### 安全推理控制
- **推理控制的假设**:并非所有推理活动都需控制,我们提出以下假设来限制推理控制的范围。
- **假设1**:推理依赖于XML文档中的节点及其关系,否则无法控制。
- **假设2**:推理结果必须存在于文档中,只有导致文档中敏感信息泄露的推理才需控制。
- **文档的安全验证**:直接披露控制和推理披露控制都需检查结果是否违反安全策略。以下是验证过程:
```plaintext
Procedure 1. XML document’s security check for some user
Input: XML document t, Sensitive objects O of some user
Output: TRUE if the security is violated, otherwise FALSE
Method:
1. For any object o in O:
(a) If o is a single object, then return TRUE if o.locate is path contained in t.
(b) If o is an associated object, then return TRUE if there exist a sub - tree identified by o.asscroot(t) that contains all the sub - objects of o.
2. Return FALSE
```
- **文档的组合**:每个查询结果都是结构不同的子树,简单组合会导致混乱。为保持历史文件与原始文档的结构一致性,我们使用虚拟节点补充查询结果,再合并到历史文件。同时,使用XML键消除内容冗余。
```plaintext
Algorithm 1. Merging the documents of same structure
Input: XML document t and t', XML key set K of an original document that t and t' have same structure with
Output: result of the combination
Method:
1. Let n be the root of t'
2. If n is not a leaf - node, for each sub - node n' of n:
(a) If n' is not contained in t, or it is defined to be repeatable, then copy the sub - tree that root of it to t at a corresponding position;
(b) Otherwise, n = n', goto 2 for a recursion
3. For each k = (pa, {p1r, p2r, …, pnr}) in K, if k is contained in t, let T be the sub - tree set of pa(t), and if T is not empty:
(a) Let t1
```
0
0
复制全文
相关推荐






