GBase8s数据库取消 WITH GRANT OPTION 授予的权限

如果您从 user 取消您使用 WITH GRANT OPTION 关键字授予的权限或角色,则切断由那个 user

授予的权限的链条。

这样,当您从用户或从角色取消权限时,您还取消了在下列上下文中 GRANT 语句所产生的相同的

权限:

由您的被授予者发出的

允许,因为您的被授予者指定了 WITH GRANT OPTION 子句

允许,因为后续的被授予者使用 WITH GRANT OPTION 子句授予了相同的权限或角色

在给特定的用户指定权限的 GRANT 语句中,仅 WITH GRANT OPTION 子句是有效的。被授予

者不可为 PUBLIC 组或角色。

下列示例展示权限的取消。假设您,作为表 items 的所有者,发出下列语句来将访问权限授予用

户 mary:

REVOKE ALL ON items FROM PUBLIC;

GRANT SELECT, UPDATE ON items TO mary WITH GRANT OPTION;

然后,用户 mary 使用她的新权限来授予用户 cathy 和 paul 对 items 表的访问:

GRANT SELECT, UPDATE ON items TO cathy;

GRANT SELECT ON items TO paul;

稍后,您从用户 mary 取消对 items 表的权限:

REVOKE SELECT, UPDATE ON items FROM mary;

此单一语句有效地从用户 mary、cathy 和 paul 取消对 items 表的所有权限。

CASCADE 关键字与此缺省的情况有相同的作用。

AS 子句

若没有 AS 子句,执行 REVOKE 语句的用户必须为正被取消的权限的授予者。DBA

或该对象的所有者可使用 AS 子句来指定另一用户(必须为该权限的授予者)作为该

权限的取消者。

AS 子句提供唯一的机制,可取消对其 owner 为诸如 gbasedbt 这样的授权标识符的数据库对象的

权限,该标识符还不是操作系统已知的有效的用户账户。

要了解 AS revoker 子句需要的,而不是可选的,上下文,请参阅 将 Execute 权限从 PUBLIC 取

消。

CASCADE 关键字对 UNDER 权限的作用

如果您以 CASCADE 选项取消对类型表的 Under 权限,则从指定的用户移除 Under 权限,并从

数据库删除那个用户在该类型表之下创建的任何子表。

如果当那个数据类型正在使用时,您以 CASCADE 选项取消对命名的 ROW 类型的 Under 权

限,则 REVOKE 失败。对 CASCADE 选项的缺省的行为会发生例外,因为数据库服务器支持仅

带有 RESTRICT 关键字的 DROP ROW TYPE 语句。

例如,假设用户 jeff 创建名为 rtype1 的 ROW 类型,并将对那个 ROW 类型的 Under 权限授

予用户 mary。现在,用户 mary 在 ROW 类型 rtype1 之下创建名为 rtype2 的 ROW 类型,并

将对 ROW 类型 rtype2 的 Under 权限授予用户 andy。然后,用户 andy 在 ROW 类型 rtype2

之下创建名为 rtype3 的 ROW 类型。

如果现在用户 jeff 试图以 CASCADE 选项从用户 mary 取消对 ROW 类型 rtype1 的 Under 权

限,则 REVOKE 语句失败,因为 ROW 类型 rtype2 仍在被 ROW 类型 rtype3 所使用。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值