对于有同事报case上来,想要添加对包的查看、执行、调试、替换、debug等权限。
下面我整理了一下,什么权限可以做什么。
首先我们对这类授权,有以下三个维度:
包头、包体
查看、执行、编译、替换、debug
对某个包有权限,还是对所有包有权限。
1.查看权限
grant create any procedure to fwy3;
从字面意义上,是创建any procedure的权限。但除了创建过程外,还可以起到查看任何package包头包体代码的效果。
有查看、没有执行、编译、替换权限。
2.执行权限
grant execute any procedure to fwy3;
grant execute on scott.package_1 to fwy;
赋予执行权限。
能看包头看不到包体,能执行,不能编译,不能替换。
3.编译权限
grant alter any procedure to fwy3;
此时用户有编译权限,编译任何的procedure,function,package与package body,如:
alter procedure New_procedure compile ;
alter function New_function compile ;
alater package package_name compile [package|body];
没有查看、执行、有编译、没有替换权限。
对于编译权限,只能依据原来的代码进行编译,而不能用新的代码。
4.替换权限
当查看权限与编译权限结合,即第1与第3点都有的时候,就能起有替换的权限。替换是要有编译以及需要看到它。
5.debug权限。
grant debug any procedure to fwy3; --系统权限
grant debug on dbmgr.PKG_AUDIT_RULE to fwy;--对象权限
grant DEBUG CONNECT SESSION to fwy3; --系统权限
如果用的是plsql developer工具,还得点对象邮件-添加调试信息,才能debug。