oracle包授权执行

工作里使用oracle数据库,为集成多种业务组件数据库端访问,因每个独立业务以分别用户隔离,建立集成连接用户,应用端访问此用户,在此用户下建立同义词,各个业务系统均可访问

其中涉及包对象集成,建立过程如下:

  • 业务用户中正常建立包和包体
  • 业务用户授权集成用户可执行此包
  • 集成用户下建立此包同义词

参考脚本如下
例如,业务用户名为:dawn_dev,集成用户名为:

业务用户中包和包体这里以简单对象功能示例

包声明定义

create or replace package d_fc is


  -- Public function and procedure declarations
  function get_name return varchar2;

end d_fc;

包体定义

create or replace package body d_fc is

  -- Function and procedure implementations
  function get_name return varchar2 is
  begin
    return 'xc';
  end;

end d_fc;

业务用户授权集成用户可执行包:

grant execute on d_fc to conn_ptr;

集成用户下建立同义词

create or replace synonym d_fc for dawn_dev.d_fc;

完成后,在集成用户下就可以像业务用户中调用包中对象,如

declare
  -- Local variables here
  i varchar2(200);
begin
  -- Test statements here
  select d_fc.get_name() into i from dual;

  dbms_output.put_line('get-name:' || i);
end;
posted @ 2023-06-14 01:58  xuchao4177  阅读(367)  评论(0)    收藏  举报