【ORACLE】简单谈谈ORACLE数据库中的ACL配置

ORACLE数据库内可以通过调用内置的一些包对外部发起TCP通讯,比如UTL_HTTP/UTL_SMTP/UTL_TCP/UTL_INADDR等,但是为了保证安全,ORACLE数据库有ACL(Access Control List 访问控制列表)的配置,只有进行过对应正确的配置,才能成功向外发起TCP通讯;如果配置不对,在访问的时候肯能会报错“ORA-24247 网络访问被访问控制列表 (ACL) 拒绝”。
image.png
上图为通常情况下,使用dbms_network_acl_admin包配置ACL规则的步骤,其实在这个包还可以配置wallet证书,不需要在PL/SQL代码中再去指定wallet路径了。另外还可以配置ACE访问控制条目,但不在本篇的讨论范围内,也就不说了。
在配置前,先查询一下两个视图

select * from dba_network_acls;
Select * From dba_network_acl_privileges ;

dba_network_acls为assign_acl维护进去的
dba_network_acl_privileges为create_acl和add_privilege维护进去的

如果dba_network_acl_privileges中有可用的记录,那么我们可以跳过create_acl这一步,直接使用存在的xml文件来新增权限;如果没有,那么我们就先创建一个acl

一、创建ACL

begin
  dbms_network_acl_admin.create_acl(  
                                    acl         => 'utl_http.xml', -- 自定义文件名称   
                                    description => 'HTTP Access', -- 自定义描述    
                                    principal   => 'DBUSER', -- 要配置的数据库账号,大小写敏感     
                                    is_grant    => TRUE, -- 授权还是取消授权     
                                    privilege   => 'connect', -- 连接权限    
                                    start_date  => null, -- 起始日期,不维护则为不限制,下同   
                                    end_date    => null -- 结束日期  
                                    );
end;
/

二、然后再在这个acl中给这个用户增加一个resolve的权限

begin
  dbms_network_acl_admin.add_privilege( acl        => 'utl_http.xml', -- 刚才创建的acl名称     
                                       principal  => 'DBUSER', -- 与上同   
                                       is_grant   => TRUE, -- 与上同     
                                       privilege  => 'resolve', -- resolve权限   
                                       start_date => null,
                                       end_date   => null);
end;
/

三、最后在acl中添加要访问的目标网址(ip和域名均可),可以指定端口范围

begin
  dbms_network_acl_admin.assign_acl(    
                                    acl  => 'utl_http.xml',
                                    host => 'openo2o.jd.com',   
                                    lower_port => null, -- 允许访问的起始端口号    
                                    upper_port => Null -- 允许访问的截止端口号  
                                    );
  commit;
end;
/

配置完成后,查询一下前面说的两个视图,可以找到刚刚维护的规则信息。

如果以后要对已维护的ACL新增用户,单独执行第二步即可;
如果是要对已维护的ACL增加要访问的网址,单独执行第三步即可;
如果是要不同的用户允许访问不同的网址,则要再另外创建ACL了

即,一个ACL规则配置的就是 多个用户访问多个网址

想了解更多,请参考oracle官方文档
https://docs.oracle.com/en/database/oracle/oracle-database/21/arpls/DBMS_NETWORK_ACL_ADMIN.html

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
在Linux系统配置Oracle数据库的OEM,可以通过以下步骤进行操作: 1. 首先,确保已经安装了Oracle Enterprise Manager(OEM)。如果未安装,可以从Oracle官网下载并进行安装。下载地址为:https://www.oracle.com/enterprise-manager/downloads/cloud-control-downloads.html 2. 安装完成后,打开OEM控制台。 3. 在OEM控制台,选择要配置Oracle数据库实例,并点击“配置”选项。 4. 在配置页面,选择“数据库配置”选项,并填写相关信息,如数据库实例名称、主机名、端口号等。 5. 确认填写的信息无误后,点击“应用”或“保存”按钮,保存配置。 6. 配置完成后,可以使用OEM控制台来管理和监控Oracle数据库。通过OEM可以执行各种管理操作,如创建数据库、备份恢复、性能监控等。 需要注意的是,以上步骤仅适用于已安装并配置Oracle Enterprise Manager的情况。如果未安装OEM,可根据引用提供的命令行方式来管理Oracle数据库。可以使用相关的命令来开启和关闭数据库,例如使用以下命令关闭数据库: ``` shutdown immediate; ``` 请根据实际情况选择适合的方式来配置和管理Oracle数据库。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [linux关闭oracle数据库命令](https://blog.csdn.net/weixin_34177635/article/details/116388814)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [Linux系统ORACLE 19C OEM监控管理](https://blog.csdn.net/Friendsofthewind/article/details/125221442)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DarkAthena

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值