Oracle知识:存储过程建db_link权限问题


 1、 在你的过程签名后临时声明授权:authid current_user 。

代码如下:

create or replace procedure proc_test_name authid current_user

as

begin

execute immediate 'create database link dblink_name connect to user_name identified by user_pwd using ''db_remote'' ' ;

end;

2、 给你的用户再授权一次。

grant create database link to user_name(永久的)。

对于以上的操作,Oracle也没有给出明确的解释,网上相关的资料也较少。与同事讨论了下可能的原因,可能是Oracle 权限管理的一个小bug吧。Oracle中的权限分系统权限和对象权限,dba应该是一种角色型的权限,它表示该角色下的用户可以干任何事情,但是“可以干”不代表直接就可以干,还需要再“申请”下,确实有点费解。

相关内容