oracle仅创建或替换一个包的权限

oracle仅创建或替换一个包的权限,oracle,privileges,Oracle,Privileges,有没有办法只为一个包设置编辑(创建或替换)权限? (假设我的模式中有10个包,需要其他用户在我的模式中只能开发一个特定的包)我不这么认为 如果您尝试: SQL> grant alter on pkg_test to mike; grant alter on pkg_test to mike * ERROR at line 1: ORA-02225: only EXECUTE and DEBUG privileges are valid for procedur

有没有办法只为一个包设置编辑(创建或替换)权限? (假设我的模式中有10个包,需要其他用户在我的模式中只能开发一个特定的包)

我不这么认为

如果您尝试:

SQL> grant alter on pkg_test to mike;
grant alter on pkg_test to mike
               *
ERROR at line 1:
ORA-02225: only EXECUTE and DEBUG privileges are valid for procedures


SQL>

这将基本上允许您的其他用户从包所有者那里继承他们想要的任何特权。就安全性而言,这绝对是一个坏主意。要更改另一个架构中的存储过程,您必须具有“更改任何过程”权限,允许更新整个实例中的任何过程,或者用户必须具有代理权限才能成为该过程的所有者并能够更改架构中的任何内容。Alter权限不适用于单个对象级别。谢谢,但我用错了词,“Alter”的目的是“创建或替换”,这也不起作用。名为CREATE ANY PROCEDURE的系统权限影响所有对象,而不是单个对象(它允许用户创建数据库中任何用户拥有的PL/SQL过程、函数或包)。另一个是ALTERANY PROCEDURE,但同样地,它允许被授予该权限的用户更改任何其他用户拥有的任何过程。所以-很快-不,你不能做你想做的。