DEFAULT 标签

当 DBSECADM 向由安全策略保护的表添加 IDSSECURITYLABEL 列时,需要 DEFAULT label 规范,除非该表为空。如果表不为空,那么指定的 label 会插入到表的现有行中。

如果 DEFAULT 子句我数据类型不是 IDSSECURITYLABEL 的列指定安全标签,或者如果表没有安全策略,或者如果该标签的安全策略不是该表的安全策略,那么会发出错误。

要定义指定的 label 为 IDSSECURITYLABEL 列的缺省值,指定不带 policy 限定符的 label 名称,而不是 policy.label,因为该表的安全策略只对表中保护数据的安全标签是有效策略。

以下示例中的语句向表 T1 中添加安全策略标签 MegaCorp,并通过声明新列 D 为 IDSSECURITYLABEL 类型(其缺省值是名为 mylabel 的安全标签)来为表指定列级别保护:
ALTER TABLE T1 
        ADD (D IDSSECURITYLABEL DEFAULT mylabel1)
        ADD SECURITY POLICY MegaCorp;
      
因为不包含 BEFORE 子句,列 D 是表 T1 结构中的最后一列。如果它引用的数据库对象在当前数据库中不存在(除了新列 D),则该语句失败。