触发器和表格之间的交互具有多级安全性和行级粒度

A BEFORE触发器会影响与安全标签列关联的转换变量的值。

如果主题表包含安全标签列,则转换表或转换变量中与主题表安全标签列对应的列不会继承安全标签属性。 这意味着,对于转换表或转换变量,不执行具有行级粒度的多级安全检查。 如果您使用ALTER TABLE语句在主题表中添加安全标签列,规则与在主题表中添加任何列时相同,因为转换表中与安全标签列对应的列或转换变量不会继承安全标签属性。

如果您使用的 ID 没有写入权限,而您又执行了插入或更新操作,则您 ID 的安全标签值将分配给您正在插入或更新的行的安全标签列。

当“之前”触发器被激活时,如果以下任一条件成立,则与安全标签列相对应的转换变量的值就是ID的安全标签:

  • 用户没有写权限
  • 安全标签栏的值未指定

如果用户没有写权限,并且触发器更改了与安全标签列对应的转换变量,则安全标签列的值在行写入页面之前会恢复为用户的安全标签值。