如何比较 LBAC 安全标号
当您尝试访问受基于标签的访问控制 (LBAC) 保护的数据时,您的 LBAC 凭证将与一个或多个安全标号进行比较,以确定是否阻塞该访问。 LBAC 凭证是您拥有的任何安全标号加上您拥有的任何免除权。
只能进行两种类型的比较。 LBAC 凭证可以与单个读访问安全标号进行比较,LBAC 凭证也可以与单个写访问安全标号进行比较。 更新和删除操作被认为是先读后写。 当操作需要进行多次比较时,每次比较都是单独进行的。
使用的安全标号
即使您拥有多个安全标号,也只有一个安全标号会与用于保护的安全标号进行比较。 使用的标号符合下列条件:
- 它包含在用于保护所访问的表的安全策略中。
- 它是针对该访问类型(读或写)授予的。
如果您没有符合这些条件的安全标号,那么将使用缺省安全标号,即所有组件都为空值。
如何进行比较
安全标号的比较是逐个组件进行的。 如果安全标号的某个组件没有值,就会假定为空值。 对每个组件进行检查时,将使用 LBAC 规则集中的适当规则来确定:该组件值中的元素是否应该被保护标号中同一组件值中的元素阻塞。 如果任何值被阻塞,您的 LBAC 凭证就会被保护安全标号阻塞。
进行比较时使用的 LBAC 规则集是在安全策略中指定的。 要了解规则内容以及每条规则的使用时间,请查看该规则集的描述。
免除权对比较的影响
如果您拥有用于比较两个值的规则的免除权,那么不会进行该比较,并且假定保护值不会阻塞您的安全标号值。
示例: LBAC 规则集为 DB2LBACRULES ,并且安全策略具有两个组件。 一个组件的类型为
ARRAY,另一个组件的类型为 TREE。 已授予用户对规则 DB2LBACREADTREE 的免除权,该规则是比较
TREE 类型组件值时使用的读访问规则。 如果用户尝试读取受保护数据,那么无论该用户的
TREE 组件为何值(即使为空值),也不会阻塞访问,这是因为未使用该规则。 用户是否可以读取数据完全取决于标号的 ARRAY 组件值。