南大通用GBase8s 常用SQL语句(194)

1.1REVOKE FRAGMENT 语句
使用 REVOKE FRAGMENT 语句来从一个或多个用户或角色取消 Insert、Update 或 Delete 分片级权限,这些权限是对那些已通过表达式分片了的表的单个分片授予的。此语句是对 SQL 的 ANSI/ISO 标准的扩展。
语法
在这里插入图片描述

元素 描述 限制 语法
fragment 分片或存储一分片的 dbspace 的名称。缺省为 table 的所有分片。 必须存在且必须存储表的分片 标识符
revoker 为要取消的权限的授予者得用户(其未正在执行此语句) 必须为分片级权限的授予者 所有者名称
role 要从其取消权限的角色 必须在数据库中存在 所有者名称
table 要取消其分片级权限的分片了的表 必须存在且必须通过表达式分片 数据库对象名
user 要从其取消权限的用户 必须为有效的授权标识符 所有者名称
用法
REVOKE FRAGMENT 语句是对表分片指定权限的 REVOKE 语句的特例。使用 REVOKE FRAGMENT 语句来从一个或多个用户或角色取消 Insert、Update 或 Delete 权限。DBA 可使用此语句来取消其所有者为另一用户的分片的权限。
REVOKE FRAGMENT 语句仅对通过基于表达式的分布式方案分片的表为有效的。要获取对此分片策略的解释,请参阅 表达式分布方案。
指定分片
如果您未指定 fragment,则取消对 table 的所有分片的权限。您可紧跟在 ON table 规范之后指定一个分片或括在括号之间以逗号分隔的分片列表。
必须通过其名称引用每一 fragment。当您创建该分片时,如果您未声明显式的标识符,则其名称缺省为其驻留在其中的 dbspace 的名称。
在使用 onspaces 实用程序成功地重命名 dbspace 之后,仅新的名称是有效的。 GBase 8s 自动地更新在系统目录中的现有的分片策略,来替换新的 dbspace 名称,但您必须在 REVOKE FRAGMENT 语句中指定新的名称来引用其缺省的名称为重命名了的 dbspace 的名称的分片。
FROM 子句
您可指定 PUBLIC 关键字来从 PUBLIC 取消指定的分片级权限,从而从已经被显式地授予了该权限的所有用户或不持有他们已通过其收到了该权限的角色取消该权限。
如果您以引号括起 user 或 role,则该名称区分大小写,且完全按输入的样子存储。在符合 ANSI 的数据库中,如果您不使用引号括起 user 或括起 role,则以大写字母缺省地存储该名称,虽然您可在 owner 规范中将 ANSIOWNER 环境变量设置为保留小写字符字母。
当您在 REVOKE FRAGMENT 的 FROM 子句中包括 role 时,从那个角色取消指定的分片权限。然而,有那个角色的用户保留单独地授予了他们或 PUBLIC 而持有的任何分片权限。
分片级权限
跟在 FRAGMENT 关键字之后的一个或多个关键字指定分片级权限,这是表级权限的一个逻辑子集:
分片级权限

您可单个地或成批地取消分片级权限。下列关键字指定您可取消的分片级权限。
关键字 作用
INSERT 防止用户在分片中插入行
DELETE 防止用户在分片中删除行
UPDATE 防止用户在分片中更新行
ALL 对分片取消 Insert、Delete 和 Update 权限
如果您在 REVOKE FRAGMENT 语句中指定 ALL 关键字,则指定的用户和角色失去他们当前对指定的分片拥有的所有分片级权限。例如,假设用户当前对表的一个分片有 Update 权限。如果您使用 ALL 关键字来从此用户取消对此分片的所有当前权限,则该用户失去他或她对此分片拥有的 Update 权限。
要了解分片级权限与表级权限之间的区别,请参阅 分片级授权的定义 和 分片级授权在语句验证中的作用 部分。
AS 子句
如果没有 AS 子句,则执行 REVOKE 语句的用户必须是正在被取消的权限的授予者。DBA 或该分片的所有者可使用 AS 子句来指定另一用户(其必须为该权限的授予者)作为对分片的权限的取消者。
AS 子句提供了唯一可通过其对分片取消权限的机制,其 owner 为操作系统不可知的有效用户账号。
REVOKE FRAGMENT 语句的示例
下列示例基于 customer 表。它们都假设通过表达式将 customer 表分片成三个名为 part1、part2 和 part3 的分片。
取消对一个分片的权限
下列语句从用户 ed 取消对 part1 中的 customer 表的分片的 Update 权限:
REVOKE FRAGMENT UPDATE ON customer (part1) FROM ed;
下列语句从用户 susan 取消对 part1 中的 customer 表的分片的 Update 和 Insert 权限:
REVOKE FRAGMENT UPDATE, INSERT ON customer (part1) FROM susan;
下列语句取消对 part1 中的 customer 表的分片当前授予了用户 harry 的所有权限:
REVOKE FRAGMENT ALL ON customer (part1) FROM harry;
取消对多于一个分片的权限
下列语句取消对 part1 和 part2 中的 customer 表的分片当前授予用户 millie 的所有权限:
REVOKE FRAGMENT ALL ON customer (part1, part2) FROM millie;
从多于一个用户取消权限
下列语句取消对 part3 中的 customer 表的分片当前授予用户 jerome 和 hilda 的所有权限:
REVOKE FRAGMENT ALL ON customer (part3) FROM jerome, hilda;
不指定分片而取消权限
下列语句从用户 mel 取消对此用户当前对其有权限的所有分片的所有当前的权限:
REVOKE FRAGMENT ALL ON customer FROM mel;
相关的语句
相关的语句:GRANT FRAGMENT 语句 和 REVOKE 语句
要了解对分片级和表级权限的讨论,请参阅 分片级权限 部分。另请参阅 GBase 8s 数据库设计和实现指南。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值