GBase8s数据库表级权限

表级权限,也称为表权限,指定用户或角色可在数据库中的表或视图上执行哪些操作。您可使用同

义词来指定您在其上授予或取消表权限的表或视图。

可在表或视图的列的子集上授予 Select、Update 和 References 权限,但仅可对所有列取消权限。

对于在定义同一用户拥有的视图的 SELECT 语句中引用的表,如果从用户取消 Select 权限,则删

除那个视图,除非它还包括来自另一数据库中表的列。

对于 CREATE EXTERNAL TABLE 语句已经在当前的数据库中注册了的表对象,仅支持 Select 权

限和 Insert 权限;不可授予或取消其他表或列访问权限。

使用下列语法来指定从一个或多个用户或角色取消哪些表级权限:

表级权限;

如果用户从两个不同的授予者收到相同的权限,且一授予者取消该权限,则被授予者仍有该权限,

直到第二个授予者也取消该权限为止。例如,如果您和 DBA 都将对您的表的 Update 权限授予

ted,则您和 DBA 必须都取消 Update 权限来阻止 ted 更新您的表。

然而,如果用户 ted 通过角色或作为 PUBLIC 持有相同的权限,则此 REVOKE 操作不能阻止

ted 行使 Update 权限。

何时在 GRANT 之前使用 REVOKE

您可使用 REVOKE 与 GRANT 的组合来以特定的用户替代 PUBLIC 作为被授予者,并移除对一

些列的表级权限。

以指定的用户替代 PUBLIC

如果表所有者将权限授予 PUBLIC,则该所有者不可从任何特定的用户取消同一权限。例如,假设

PUBLIC 对您的 customer 表有缺省的 Select 权限。假设您发出下列语句,尝试阻止 ted 访问您

的表:

REVOKE ALL ON customer FROM ted;

此语句导致 ISAM 错误消息 111,No record found,因为系统目录表(syscolauth 或

systabauth)未包含名为 ted 的用户的表级权限条目。此 REVOKE 操作不阻止 ted 保持所有赋予

PUBLIC 的对 customer 表的表级权限。

要限制表级权限,首先以 PUBLIC 关键字取消该权限,然后将它们重新授予某适当的用户和角色列

表。下列语句从所有用户取消对 customer 表的 Index 和 Alter 权限,然后特定地将这些权限授

予用户 mary:

REVOKE INDEX, ALTER ON customer FROM PUBLIC;

GRANT INDEX, ALTER ON customer TO mary;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值