相关文章推荐
眼睛小的匕首  ·  java swing 升级,为Java ...·  1 年前    · 
斯文的电影票  ·  android 高斯模糊几种方案比较与实现 ...·  1 年前    · 
谦逊的小熊猫  ·  TagPageResponse ...·  1 年前    · 
听话的黄豆  ·  git查看某个commit属于哪个分支_SH ...·  1 年前    · 
Code  ›  Oracle ora-24247进行https呼叫时 - 墨天轮
acl oracle函数 https ora-06512
https://www.modb.pro/db/206388
任性的跑步鞋
1 年前
  • 学习
    • 课程中心
      推荐优质内容、热门课程
    • 学习路径
      预设学习计划、达成学习目标
    • 知识图谱
      综合了解技术体系知识点
    • 课程库
      快速筛选、搜索相关课程
    • 视频学习
      专业视频分享技术知识
    • 电子文档
      快速搜索阅览技术文档
  • 文档
  • 工具
    • SQLRUN
      在线数据库即时SQL运行平台
    • 数据库在线实训平台
      实操环境、开箱即用、一键连接
    • Oracle巡检
      简单两步,查看报告分析
    • AWR分析
      上传AWR报告,查看分析结果
    • SQL格式化
      快速格式化绝大多数SQL语句
    • SQL审核
      审核编写规范,提升执行效率
    • PLSQL解密
      解密超4000字符的PL/SQL语句
    • OraC函数
      查询Oracle C 函数的详细描述
    • Bethune X
      数据库智能监控巡检平台,90天试用
  • 暂无图片
    • 数据库
    • 云计算
    • 数据产品
    • 中间件
    • 操作系统
    • 芯片
  • 我的订单
  • 登录后可立即获得以下权益
    免费培训课程
    收藏优质文章
    疑难问题解答
    下载专业文档
    签到免费抽奖
    提升成长等级
    立即登录
    登录 注册
      • 登录 注册
    • 首页
    • 资讯
    • 数说
    • 活动
    • 大会
    • 课程
    • 文档
    • 排行
    • 问答
    • 云市场
    • 我的订单
    暂无图片
    觉得内容不错?
    一键收藏 方便随时查看
    暂无图片
    暂无图片
    微信扫码
    复制链接
    新浪微博
    暂无图片
    采集到收藏夹
    首页 / Oracle ora-24247进行https呼叫时

    Oracle ora-24247进行https呼叫时

    askTom 2016-04-04
    352

    问题描述

    嗨,

    我在包内进行https调用时遇到问题。它似乎不承认为访问acl所授予的特权。

    当我在匿名plsql块中调用utl_http.开始_request时,或在authid定义为当前用户的过程中调用utl_http.开始_request时,我得到一个连接(尽管是一个连接抱怨缺少证书) ,但如果该过程是使用默认设置创建的(即定义)它抱怨网络访问。如果我创建了对角色的特权,我就能理解它,但在为用户创建特权时就不能理解它。是否有任何方法可以解决这个问题,否则我将不得不单独授予数据库中每个用户的访问权限



    已连接到Oracle Database 11g Enterprise Edition 11.2.0.3.0版
    以sdddba@dev24_DRACO身份连接

    SQL>创建由acltest标识的用户acltest ;
    用户已创建

    SQL>授予到acltest的连接;
    授权成功

    SQL>将dba授予acltest ;
    授权成功

    SQL>声明
    2 acl_nom varchar2(100) :='/sys/acls/domtest.xml';
    3开始
    4 dbms_网络_acl_admin.创建_acl (
    5 acl => acl_nom ,
    6描述=>'mytest acl',
    7个主要的=>'ACLTEST',
    8为_允许=>为真,
    9特权=>'连接',
    10 start_date =>系统时间戳,
    11 end_date =>空) ;
    12
    13 dbms_网络_acl_admin.分配_acl(acl => acl_nom ,
    14个主机=> ,
    15下端口=> 443 ,
    16上端口=> 443) ;
    17结束;
    18
    PL/SQL过程已成功完成

    SQL>声明
    2 v_req utl_http.req ;
    3开始
    4 v_req := utl_http.开始_request(' https:// ',
    5'后',
    6 utl_http.http_version_1_1) ;
    7结束;
    8
    宣布
    v_req utl_http.req ;
    开始
    v_req := utl_http.开始_request('https: ',
    '开机自检',
    utl_http.http_version_1_1) ;
    结束;
    ORA-29273 : HTTP请求失败
    ORA-06512 : "SYS.UTL_HTTP" ,行1130
    ORA-29024 :证书验证失败
    ORA-06512 :在第4行

    SQL>将过程myproc创建为或替换为
    2
    2 v_req utl_http.req ;
    3开始
    4 v_req := utl_http.开始_request(' https://preprod-ncd.mibhub.org.uk/ncd/api/v1_0/enquire',--'https://preprod-ncd.mibhub.org.uk/ncd/api/v1_0/enquire:443',
    5'后',
    6 utl_http.http_version_1_1) ;
    7结束;
    8
    过程已创建

    SQL> 开始
    2 myproc ;
    3 结束;
    4
    开始
    myproc ;
    结束;
    ORA-29273 : HTTP请求失败
    ORA-06512 : "SYS.UTL_HTTP" ,行1130
    ORA-24247 :网络访问被访问控制列表(ACL)拒绝
    ORA-06512 : "ACLEST.MYPROC" ,第4行
    ORA-06512 :在第2行

    SQL>将过程myproc authid当前用户创建为或替换为
    2
    2 v_req utl_http.req ;
    3开始
    4 v_req := utl_http.开始_request(' https://preprod-ncd.mibhub.org.uk/ncd/api/v1_0/enquire',--'https://preprod-ncd.mibhub.org.uk/ncd/api/v1_0/enquire:443',
    5'后',
    6 utl_http.http_version_1_1) ;
    7结束;
    8
    过程已创建

    SQL> 开始
    2 myproc ;
    3 结束;
    4
    开始
    myproc ;
    结束;
    ORA-29273 : HTTP请求失败
    ORA-06512 : "SYS.UTL_HTTP" ,行1130
    ORA-29024 :证书验证失败
    ORA-06512 : "ACLEST.MYPROC" ,第4行
    ORA-06512 :在第2行
    我不确定我是否理解了你的问题,但这里有一个定义程序被传递给其他用户的示例,即,我只将ACL授予ACLEST ,但SCOTT可以执行该进程,例如

    SQL> conn / as sysdba
    Connected.
    SQL> create user acltest identified by acltest;
    User created.
    SQL> grant connect to acltest;
    Grant succeeded.
    SQL> grant dba to acltest;
    Grant succeeded.
    SQL> declare
      2  acl_nom varchar2(100) := '/sys/acls/domtest.xml';
      3  begin
      4  dbms_network_acl_admin.drop_acl (acl => acl_nom);
      5  end;
    PL/SQL procedure successfully completed.
    SQL> declare
      2  acl_nom varchar2(100) := '/sys/acls/domtest.xml';
      3  begin
      4  dbms_network_acl_admin.create_acl (
      5  acl => acl_nom,
      6  description => 'mytest acl',
      7  principal => 'ACLTEST',
      8  is_grant => true,
      9  privilege => 'connect',
     10   start_date => systimestamp,
     11   end_date => null);
     13   dbms_network_acl_admin.assign_acl(acl => acl_nom,
     14   host => '*',
     15   lower_port => 443,
     16   upper_port => 443);
     18  END;
     19  /
    PL/SQL procedure successfully completed.
    SQL> commit;
    Commit complete.
    SQL> connect acltest/acltest
    Connected.
    SQL> create or replace procedure acltest.myproc as
      2    v_req utl_http.req;
      3  begin
      4    v_req := utl_http.begin_request('https://preprod-ncd.mibhub.org.uk/ncd/api/v1_0/enquire','POST',utl_http.http_version_1_1);
      5  end;
    Procedure created.
    SQL> grant execute on acltest.myproc to public;
    Grant succeeded.
    SQL> connect acltest/acltest
    Connected.
    SQL> exec acltest.myproc
    BEGIN acltest.myproc; END;
    ERROR at line 1:
    ORA-29273: HTTP request failed
    ORA-06512: at "SYS.UTL_HTTP", line 1130
    ORA-29024: Certificate validation failure
    ORA-06512: at "ACLTEST.MYPROC", line 4
    ORA-06512: at line 1
    SQL> connect scott/tiger
    Connected.
    SQL> exec acltest.myproc
    BEGIN acltest.myproc; END;
    ERROR at line 1:
    ORA-29273: HTTP request failed
    ORA-06512: at "SYS.UTL_HTTP", line 1130
    ORA-29024: Certificate validation failure
    ORA-06512: at "ACLTEST.MYPROC", line 4
    ORA-06512: at line 1
    
     
    推荐文章
    眼睛小的匕首  ·  java swing 升级,为Java Swing应用程序添加自更新功能的最佳方法是什么?_MHJCR的博客-CSDN博客
    1 年前
    斯文的电影票  ·  android 高斯模糊几种方案比较与实现 - 掘金
    1 年前
    谦逊的小熊猫  ·  TagPageResponse interface | Microsoft Learn
    1 年前
    听话的黄豆  ·  git查看某个commit属于哪个分支_SHUIPING_YANG的博客-CSDN博客
    1 年前
    今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
    删除内容请联系邮箱 2879853325@qq.com
    Code - 代码工具平台
    © 2024 ~ 沪ICP备11025650号