创建一个具有对特定SCHEMA的完全访问权限的新用户ORACLE

Sal*_*dor 1 sql oracle privileges schema oracle11g

如何在ORACLE中创建一个具有完全访问权限(更改,删除,选择,插入,调试等)的新用户到一个特定的SCHEMA.

APC*_*APC 5

无法做到.在Oracle中,特权是在特定对象上授予的,除非您具有高权限的ANY权限,这些权限授予对任何模式中任何对象的访问权限.

这是其中一件似乎很烦人的事情,但实际上是非常合理的.在集群中的对象上授予对所有对象的特权没有好的商业理由.或

  1. 第二个模式实际上只需要一个对象子集上的一个特权子集; 要么
  2. 第二个模式完全没必要.

现在可能是第一个实例中的子集是一个非常大的子集.但懒惰并不是恶劣安全措施的借口.

我们可以做的是从数据字典生成grant语句:

select 'grant select on '||table_name||' to B'
from   user_tables
/
Run Code Online (Sandbox Code Playgroud)

(用于由用户A运行的脚本).

这仍然比授予模式特权更好,因为这意味着至少任何由用户A添加的新对象都不会在没有额外操作的情况下自动传播到B,因此,无需另外考虑是否合适.