热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

oracle触发器中使用UTL_INADDR.GET_HOST_ADDRESS时出现ORA24247的解决方法

最近数据库中有张表要用触发器把本机的IP取出来,写到另一张表,使用了UTL_INADDR.GET_HOST_ADDRESS(),结果触发器

最近数据库中有张表要用触发器把本机的IP取出来,写到另一张表,使用了UTL_INADDR.GET_HOST_ADDRESS(),结果触发器在执行时报ORA-24247错误。在9i上不会报错,在11G上报错。好容易在网上找到了解决方法,三个步骤解决,在oracle 11GR2 for linux上成功取到了IPV4的IP,记下来:

用sys用户通过sqlplus连接数据库:sqlplus / as sysdba,然后执行以下三个存储过程。

1 创建 ACL

 begindbms_network_acl_admin.create_acl (acl => 'UTL_INADDR.xml',description => 'utl_inaddr',principal => 'MYDBUSER',   --即将要为之授权的用户,要大写,小写会报找不到该用户is_grant => TRUE,privilege => 'resolve');commit;end;/

2  增加权限

begindbms_network_acl_admin.add_privilege (acl => 'UTL_INADDR.xml',principal => 'MYDBUSER',  --即将要为之授权的用户,要大写,小写会报找不到该用户is_grant => TRUE,privilege => 'connect');commit;end;/

3  授予用户权限
 

 begindbms_network_acl_admin.assign_acl(acl => 'UTL_INADDR.xml',host => '*');commit;end;/

延伸:
1、如果想查看一下数据里有几个ACL文件呢?如下:

SELECT * FROM DBA_NETWORK_ACLS

2、如果想看看ACL都为哪些用户授权了呢?如下:

SELECT * FROM DBA_NETWORK_ACL_PRIVILEGES

 

 

网上找到一个比较全的对于以上命令的解释,原文地址:https://blog.csdn.net/zxnlmj/article/details/22877743

begindbms_network_acl_admin.create_acl ( -- 创建访问控制文件(ACL)acl => 'utl_http.xml', -- 文件名称description => 'HTTP Access', -- 描述principal => 'ITS', -- 授权或者取消授权账号,大小写敏感is_grant => TRUE, -- 授权还是取消授权privilege => 'connect', -- 授权或者取消授权的权限列表start_date => null, -- 起始日期end_date => null -- 结束日期);dbms_network_acl_admin.add_privilege ( -- 添加访问权限列表项acl => 'utl_http.xml', -- 刚才创建的acl名称 principal => 'ITS', -- 授权或取消授权用户is_grant => TRUE, -- 与上同 privilege => 'resolve', -- 权限列表start_date => null, end_date => null);dbms_network_acl_admin.assign_acl ( -- 该段命令意思是允许访问acl名为utl_http.xml下授权的用户,使用oracle网络访问包,所允许访问的目的主机,及其端口范围。acl => 'utl_http.xml',host => '100.1.2.1', -- ip地址或者域名,填写http://localhost:9000/hello与http://localhost:9000/是会报host无效的-- 且建议使用ip地址或者使用域名,若用localhost,当oracle不是安装在本机上的情况下,会出现问题lower_port => 9000, -- 允许访问的起始端口号upper_port => Null -- 允许访问的截止端口号);commit;
end;begindbms_network_acl_admin.assign_acl ( -- 可以授权多个主机,或者多个主机的多个端口acl => 'utl_http.xml',host => '10.100.49.138',lower_port => 80,upper_port => NUll);commit;
end;

 


推荐阅读
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 在当前众多持久层框架中,MyBatis(前身为iBatis)凭借其轻量级、易用性和对SQL的直接支持,成为许多开发者的首选。本文将详细探讨MyBatis的核心概念、设计理念及其优势。 ... [详细]
  • RecyclerView初步学习(一)
    RecyclerView初步学习(一)ReCyclerView提供了一种插件式的编程模式,除了提供ViewHolder缓存模式,还可以自定义动画,分割符,布局样式,相比于传统的ListVi ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • 根据最新发布的《互联网人才趋势报告》,尽管大量IT从业者已转向Python开发,但随着人工智能和大数据领域的迅猛发展,仍存在巨大的人才缺口。本文将详细介绍如何使用Python编写一个简单的爬虫程序,并提供完整的代码示例。 ... [详细]
  • 本文探讨了MariaDB在当前数据库市场中的地位和挑战,分析其可能面临的困境,并提出了对未来发展的几点看法。 ... [详细]
  • 探讨如何真正掌握Java EE,包括所需技能、工具和实践经验。资深软件教学总监李刚分享了对毕业生简历中常见问题的看法,并提供了详尽的标准。 ... [详细]
  • 本文介绍如何使用布局文件在Android应用中排列多行TextView和Button,使其占据屏幕的特定比例,并提供示例代码以帮助理解和实现。 ... [详细]
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • 本文详细介绍了如何通过多种编程语言(如PHP、JSP)实现网站与MySQL数据库的连接,包括创建数据库、表的基本操作,以及数据的读取和写入方法。 ... [详细]
  • 将Web服务部署到Tomcat
    本文介绍了如何在JDeveloper 12c中创建一个Java项目,并将其打包为Web服务,然后部署到Tomcat服务器。内容涵盖从项目创建、编写Web服务代码、配置相关XML文件到最终的本地部署和验证。 ... [详细]
  • 本文介绍了如何通过 Maven 依赖引入 SQLiteJDBC 和 HikariCP 包,从而在 Java 应用中高效地连接和操作 SQLite 数据库。文章提供了详细的代码示例,并解释了每个步骤的实现细节。 ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • MySQL索引详解与优化
    本文深入探讨了MySQL中的索引机制,包括索引的基本概念、优势与劣势、分类及其实现原理,并详细介绍了索引的使用场景和优化技巧。通过具体示例,帮助读者更好地理解和应用索引以提升数据库性能。 ... [详细]
author-avatar
开心宝2502869253
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有