gpt4 book ai didi

sql - 撤销 Oracle 中的权限

转载 作者:行者123 更新时间:2023-12-03 03:53:46 24 4
gpt4 key购买 nike

我目前正在使用 Oracle Database Express Edition 11g 处理一些 GRANT 选项。考虑以下小代码示例,其中一些用户向其他用户授予一些权限:

-- User A
GRANT Select, Insert, Update, Delete ON T TO B,C WITH GRANT OPTION ;
-- User B
GRANT Select ON T TO C WITH GRANT OPTION ;
GRANT Insert ON T TO C ;
-- USer C
GRANT Select, Insert, Update ON T TO D ;

用户 A 是表 T 的创建者,并执行以下 REVOKE 操作。

现在执行REVOKE Update ON T FROM C。由于未指定约束,REVOKE 操作应取消,否则 D 处将出现废弃的 UPDATE 权限,或者删除该权限CD 的。

现在我的问题是:REVOKE 语句实际上取消或删除了 CD 权限吗?或者说,执行该revoke语句后的结果是CD是否仍然拥有UPDATE权限?

提前致谢。

最佳答案

撤销对象权限

如果用户已将权限授予其他用户或角色,则数据库也会撤销这些其他用户或角色的权限。

<小时/>

正确的 REVOKE 语句是:

  REVOKE object_priv [(column1, column2..)] ON [schema.]object 
FROM {user, | role, |PUBLIC} [CASCADE CONSTRAINTS] [FORCE]

Oracle 中没有 RESTRICTRESTRICT 存在于 PostgresSQL、MariaDB 等中。

但是我认为您的预期方式只是从 A 用户执行 REVOKE Update ON T FROM C 。之后就没有任何错误,用户 C 和 D 没有权限更新 T。

关于sql - 撤销 Oracle 中的权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34288932/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com