我创建了一个新的数据库用户。我发现该帐户可以选择其他模式表的数据。那么如何限制新帐户仅操作其拥有的表呢?
1 回答
你不能。您可以REVOKE
在某些情况下使用,但要记住关于 REVOKE 的最重要的事情是它只能撤销显式GRANT
编辑的权限。每个数据库都具有不绑定到任何特定模式并授予 PUBLIC 的 GLOBAL 权限。只要这些权限(权限)有效,所有 ROLES 都会继承这些权限。
您可以撤销某些PRIVILEGES
诸如SELECT, DELETE, INSERT
等,但您必须在每个模式的对象级别上执行此操作。这意味着,如果将新表添加到这些模式中的任何一个,则默认情况下用户将有权访问它,除非该PRIVILEGES
用户的新表上的REVOKED
.
根据 Oracle 文档,以下是 REVOKE 的先决条件-
先决条件
要撤消系统特权,您必须已通过 ADMIN OPTION 授予该特权。
要撤消角色,您必须已被授予具有 ADMIN OPTION 的角色。如果您具有 GRANT ANY ROLE 系统权限,则可以撤销任何角色。
要撤销对象特权,您必须事先已将对象特权授予用户和角色,或者您必须具有 GRANT ANY OBJECT PRIVILEGE 系统特权。在后一种情况下,您可以撤销由对象所有者或代表所有者授予的任何对象特权——即,由具有 GRANT ANY OBJECT PRIVILEGE 的用户授予。但是,您不能撤销通过 WITH GRANT OPTION 授予方式授予的对象权限。