ARRAY 类型的安全标签组件是超过 64 个元素的有序集合。声明数组元素的顺序很重要,因为它定义了数据敏感性的降序,每个连续的元素在数据敏感性上都低于前面的元素。数组的标签元素集及其逗号( , )分隔符必须放在一对括号( [ ... ])内。相同的新元素不能在同一 ADD ARRAY 子句中声明多次。
在 ADD ARRAY 子句中,BEFORE 或 AFTER 关键字必须跟随在新元件(或以逗号分隔的新元件的列表)之后按数据敏感度降序指定新元件的位置。在对元素大小和数量的限制中,此语法使 DBSECADM 能够在数组中任何位置(包括最高位置和最低位置)或在连续的现有元素之间插入新元素。然而,如果 ADD ARRAY 子句的 BEFORE 或 AFTER 关键字指定了之前未定义的数组元素(无论是在创建数组组件时,还是在先前的 ALTER SECURITY LABEL COMPONENT 语句中),ALTER SECURITY LABEL COMPONENT 语句都会失败并显示错误。
如果在同一个 ARRAY 类型的构件中执行了多个 ALTER SECURITY LABEL COMPONENT 操作以添加新元件, 由于数组元件的编码方式,DBSECADM 可能无法到达 64 组元件的最大值。有关安全元件是如何编码的信息,请参阅 GBase 8s 安全指南 。
CREATE SECURITY LABEL COMPONENT aquilae ARRAY [ "imperator", "tribunus", "centurio", "miles", "asinus" ]; ALTER SECURITY LABEL COMPONENT aquilae ADD ARRAY [ "legatus" BEFORE "tribunus","cunctator" AFTER "asinus" ];该 ALTER SECURITY LABEL COMPONENT ... ADD ARRAY 语句的成功运行修改了 aquilae 安全标签构件组,因此构件元件新的降序顺序为:imperator 、legatus 、tribunus 、centurio 、miles 、asinus 、cunctator。