CREATE SECURITY LABEL 语句

使用 CREATE SECURITY LABEL 语句在当前数据库中为指定的安全策略定义新的安全标签,并标识其组件和组件名称。

该语句是 SQL ANSI/ISO 标准的扩展。

语法

元素 描述 限制 语法
component 安全标签组件 必须作为指定 policy 的组件存在于当前数据库中,且在此 label 的组件名称中必须唯一 标识符
label 为此标签声明的名称 在此安全 policy 的安全标签名称中必须唯一 标识符
element 指定的 component 的一个元素 当其 component 定义完成或最后的更改完成时,必须已经定义。如果 component 是一个数组,则只能指定一个 element 用引号括起的字符串
policy label 的安全策略 必须存在于数据库中 标识符

用法

安全标签 是支持指定安全策略的已命名的数据库对象。安全标签可应用于用户,或当前数据库中表的行或列(或者行和列)。当持有安全标签的用户尝试存取有安全标签的数据时,数据库服务器将列或行的安全标签和用户的安全标签作为决定是否允许用户存取数据的考虑条件。

每个安全标签存储以下种类信息:
  • 它标识标签支持的现有安全策略。
  • 它标识至少一个,但不超过 16 个标签支持的安全策略的现有的组件。
  • 它标识一个或多个安全标签的每个组件的现有的元素。(只有 SET 或 TREE 类型的安全标签组件能在同一安全标签中包含多个元素。)

只有 DBSECADM 能发出此语句。当 CREATE SECURITY LABEL 语句执行成功,它会在 sysseclabels 系统目录表中注册指定的 label 名称,与安全 policy 关联的数字标识符,和它的安全标签 components 的基数。

如果您包含可选的 IF NOT EXISTS 关键字,则当指定名称的安全标签已经在当前数据库中注册时,数据库服务器不采取操作(而非向应用程序发送异常)。