如何在 ORACLE 中创建一个对唯一一个特定 SCHEMA 具有完全访问权限(更改、删除、选择、插入、调试等)的新用户。
问问题
6289 次
2 回答
5
无法完成。在 Oracle 中,特权被授予特定对象,除非您具有强大的 ANY 特权,它授予对任何模式中的任何对象的访问权限。
这是看起来很烦人但实际上很合理的事情之一。集体授予对模式中对象的所有权限没有充分的商业理由。任何一个
- 第二个模式实际上只需要对象子集的特权子集;或者
- 第二个模式完全没有必要。
现在可能是第一个实例中的子集是一个非常大的子集。但懒惰并不是不良安全实践的借口。
我们可以做的是从数据字典中生成授权语句:
select 'grant select on '||table_name||' to B'
from user_tables
/
(用于由用户 A 运行的脚本)。
这仍然比在模式上授予权限要好,因为这意味着至少用户 A 添加的任何新对象都不会在没有额外操作的情况下自动传播到 B,因此不需要额外考虑它是否合适。
于 2010-03-04T13:50:30.323 回答