如何防止用户选择其他模式的表?

时间:2012-07-31 20:32:43

标签: oracle oracle10g oracle-xe

我创建了一个新的数据库用户。我发现该帐户可以选择其他模式表的数据。那么如何限制新帐户只能操纵其拥有的表?

1 个答案:

答案 0 :(得分:1)

你做不到。您可以在某些情况下使用REVOKE,但要记住REVOKE最重要的一点是它只能撤销明确GRANT ed的权限。每个数据库都具有GLOBAL权限,不受任何特定模式的约束,并授予PUBLIC。只要它们(权限)生效,所有ROLES都会继承这些权限。

您可以撤消某些PRIVILEGES,例如SELECT, DELETE, INSERT等,但您必须在每个架构的对象级别执行此操作。这意味着,如果将新表添加到任何这些模式中,则默认情况下用户可以访问它,除非该用户的新表上的PRIVILEGESREVOKED

根据以下Oracle文档,是REVOKE的先决条件 -

<强>先决条件

  1. 要撤消系统权限,您必须已使用ADMIN OPTION授予该权限。

  2. 要撤消角色,您必须已使用ADMIN OPTION授予该角色。如果您具有GRANT ANY ROLE系统特权,则可以撤消任何角色。

  3. 要撤消对象权限,您必须先将对象权限授予用户和角色,或者必须具有GRANT ANY OBJECT PRIVILEGE系统权限。在后一种情况下,您可以撤消由对象所有者或代表所有者授予的任何对象权限 - 即具有GRANT ANY OBJECT PRIVILEGE的用户。但是,您无法撤消通过WITH GRANT OPTION授予授予的对象权限。