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 @   xuchao4177  阅读(281)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示