SECLABEL_BY_COMP 函数返回 IDSSECURITYLABEL 对象,其为它的内部编码的字符串格式的安全标签。此函数使得用户能够通过指定它的组件值直接地提供安全标签。
如果安全标签组件需要多个值,则可通过将那些值放在圆括号之间来指定这样的多个值,比如 (value_1, value_2, ...)。当特定的安全标签中的组件需要为空时,可通过在左圆括号和右圆括号之间什么都不放来指定它,比如 ()。由于在安全组件的元素之中,空格(ASCII 32)是有效的字符,因此出现在安全标签字符串中的任何空格都作为那个组件的元素值的一部分来处理。
安全标签字符串被限定为最大 32 KB。如果该字符串长度超出此限制,则返回错误。
INSERT INTO T1
VALUES (SECLABEL_BY_COMP ('MegaCorp', 'VP:Marketing:West'), 1, 'xyz';
INSERT INTO T1
VALUES (SECLABEL_BY_COMP ('MegaCorp', 'Director:(HR,Finance):East'), 1, 'xyz');
INSERT INTO T1
VALUES (SECLABEL_BY_COMP ('MegaCorp', 'CEO:():EntireRegion'), 3, 'abc');
如在所有这些示例中那样,SECLABEL_BY_COMP 函数调用的成功不保证 INSERT 语句的成功,因为在数据库服务器允许或拒绝对于插入新行的访问之前,首先要使用 MegaCorp 安全策略的 IDSLBACRWRITE 规则,将用户的安全凭证与保护表 T1 的安全标签进行对比,