Oracle-将对象部署到其他架构中

问题描述 投票:0回答:1

我很惊讶,我还没能在网站上找到这个问题。抱歉,如果发现重复!

在Oracle(10以上)中,USER_A是否可以在USER_B的架构中部署对象?

例如,假设我以USER_B身份登录:

CREATE OR REPLACE PACKAGE user_a.my_example_pkg IS

   PROCEDURE Make_Log;
   PROCEDURE Init;

END user_a.my_example_pkg;

我在部署时收到ORA-1031: insufficient privileges响应。

我知道可以以USER_A身份登录以部署该程序包,是的,我可以这样做。但是关键是在我的数据库上,有人似乎已经以这种方式“跨模式”修改了一个程序包。而且我需要弄清楚他们是如何做到的!

我相当确定特权存在,但我找不到它。而且,如果有许多特权可以完成此操作,那么获得这些特权的详尽列表将是一个好处。

oracle oracle11g oracle10g oracle12c
1个回答
0
投票

您想寻找ANY特权

  • CREATE PROCEDURE允许您在架构中创建过程。 CREATE ANY PROCEDURE允许您在任何模式中创建过程。
  • CREATE TABLE允许您在架构中创建表。 CREATE ANY TABLE允许您在任何模式中创建表。
  • CREATE VIEW使您可以在架构中创建视图。 CREATE ANY VIEW允许您在任何模式中创建视图。

对于任何CREATE特权,都有相应的CREATE ANY特权。那些ANY特权extremely功能强大,实际上不应该授予DBA以外的任何人,因为它会允许您执行诸如创建由高特权用户拥有的过程的操作,这些过程可以执行DBA可以执行的任何操作。

© www.soinside.com 2019 - 2024. All rights reserved.