我创建了一个新的数据库用户。我发现该帐户可以选择其他模式表的数据。那么如何限制新帐户只能操纵其拥有的表?
答案 0 :(得分:1)
你做不到。您可以在某些情况下使用REVOKE
,但要记住REVOKE最重要的一点是它只能撤销明确GRANT
ed的权限。每个数据库都具有GLOBAL权限,不受任何特定模式的约束,并授予PUBLIC。只要它们(权限)生效,所有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授予授予的对象权限。