1

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

4

2 回答 2

5

无法完成。在 Oracle 中,特权被授予特定对象,除非您具有强大的 ANY 特权,它授予对任何模式中的任何对象的访问权限。

这是看起来很烦人但实际上很合理的事情之一。集体授予对模式中对象的所有权限没有充分的商业理由。任何一个

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

现在可能是第一个实例中的子集是一个非常大的子集。但懒惰并不是不良安全实践的借口。

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

select 'grant select on '||table_name||' to B'
from   user_tables
/

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

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

于 2010-03-04T13:50:30.323 回答
2

您可以使用代理用户。它与允许一个数据库用户以另一个数据库用户身份连接但使用他们自己的密码并不完全相同。因此,您可以有多个用户,每个用户都有自己的密码,使用相同的模式。

代码示例在这里

于 2010-03-04T22:27:11.830 回答