Oracle - 将对象部署到不同的模式中
Oracle - deploying objects into a different schema
我很惊讶我还没能在网站上找到这个问题。如果结果重复,我们深表歉意!
在 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
身份登录来部署包,是的,我可以做到。但重点是,在我的数据库中,似乎有人以这种方式修改了一个包 "across the schema"。我需要弄清楚他们是怎么做到的!!
我很确定该权限存在,但我找不到它是什么。此外,如果有许多权限允许这样做,那么获得这些权限的详尽列表将是一个奖励。
您需要寻找 ANY
权限
CREATE PROCEDURE
允许您在模式中创建过程。 CREATE ANY PROCEDURE
允许您在任何模式中创建过程。
CREATE TABLE
允许您在架构中创建表。 CREATE ANY TABLE
允许您在任何架构中创建表。
CREATE VIEW
允许您在架构中创建视图。 CREATE ANY VIEW
允许您在任何架构中创建视图。
对于任何 CREATE
权限,都有相应的 CREATE ANY
权限。这些 ANY
特权 极其 强大,真的不应该授予 DBA 以外的任何人,因为它允许您执行诸如创建由高特权用户拥有的过程之类的事情可以做 DBA 可以做的任何事情。
我很惊讶我还没能在网站上找到这个问题。如果结果重复,我们深表歉意!
在 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
身份登录来部署包,是的,我可以做到。但重点是,在我的数据库中,似乎有人以这种方式修改了一个包 "across the schema"。我需要弄清楚他们是怎么做到的!!
我很确定该权限存在,但我找不到它是什么。此外,如果有许多权限允许这样做,那么获得这些权限的详尽列表将是一个奖励。
您需要寻找 ANY
权限
CREATE PROCEDURE
允许您在模式中创建过程。CREATE ANY PROCEDURE
允许您在任何模式中创建过程。CREATE TABLE
允许您在架构中创建表。CREATE ANY TABLE
允许您在任何架构中创建表。CREATE VIEW
允许您在架构中创建视图。CREATE ANY VIEW
允许您在任何架构中创建视图。
对于任何 CREATE
权限,都有相应的 CREATE ANY
权限。这些 ANY
特权 极其 强大,真的不应该授予 DBA 以外的任何人,因为它允许您执行诸如创建由高特权用户拥有的过程之类的事情可以做 DBA 可以做的任何事情。