REVOKE SECURITY LABEL 语句取消由一个或多个用户持有的安全标签(或指定的安全策略的所有安全标签)。
元素 | 描述 | 限制 | 语法 |
---|---|---|---|
label | 现有的安全标签的名称 | 必须存在指定的安全 policy 的标签 | 标识符 |
policy | 此 label 的安全策略 | 必须在数据库中已存在 | 标识符 |
user | 从其取消标签的用户 | 必须为用户的授权标识符 | 所有者名称 |
仅持有 DBSECADM 角色的用户可发出 REVOKE SECURITY LABEL 语句。
安全标签是总与安全策略相关联的数据库对象。那个策略定义构成该安全标签的一系列有效的安全组件。该标签存储该安全策略的每一组件的一个或多个值的集合。
当持有特定的安全策略的安全标签的用户尝试访问受到同一安全策略的行安全标签保护的行时,数据库服务器将用户安全标签的值的集合与行安全标签的值的集合相比较,以确定该用户是否应被允许访问该数据。类似地,LBAC 考虑用户安全标签与列安全标签,以确定该用户的凭证是否应被允许访问受保护的列。
GRANT SECURITY LABEL 和 REVOKE SECURITY LABEL 语句使得 DBSECADM 能控制用户与标签的关联。(通过仅 DBSECADM 可执行的 CREATE TABLE 或 ALTER TABLE 语句的选项,而不是通过 GRANT SECURITY LABEL 语句,将受保护的表中的数据值与行安全标签或列安全标签相关联。)
紧跟在 LABEL 关键字之后, policy.* 规范中的星号(*)指示数据库服务器来取消 policy 的每一安全标签。如果您未用星号指定 policy.label,则那个 label 必须为指定的 policy 的安全标签的名称。在此情况下,如果该语句成功,则仅从用户列表取消那个安全标签。
跟在 FROM 关键字之后的 USER 关键字是可选的,但在 REVOKE SECURITY LABEL 语句中指定的任何授权标识符都必须是单个用户的标识符,而不是角色的标识符。