oracle11g之ACL拙见

   错误样例(使用UTL_HTTP发送http请求时,报出如下错误):

  原因:

  1、Oracle允许使用几个PL/SQL API(UTL_TCP, UTL_SMTP, UTL_MAIL, UTL_HTTP和 UTL_INADDR)访问外部网络服务,这些API都使用TCP协议。

  2、在Oracle 10g是通过一个基于用户是否被授予执行某个包的许可的 on/off开关来实现的,Oracle 11g引入了细粒度访问网络服务.

  3、通过在XML DB 数据库中使用访问控制列表(ACL)来实现,允许控制哪个用户能够访问哪个网络资源,而不关心包的授权。

  解决办法:

  -- 查询网络访问控制列表 acl

?

1

Select * From  dba_network_acls

  -- 查询访问控制权限列表

?

1

Select * From  dba_network_acl_privileges

  -- 查询数据库中的用户,用户名大小写敏感

?

1

Select username From dba_users Where username Like '%ITS%'

  分配acl权限,执行如下sql语句:

?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41

begin
  dbms_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;
 
begin
  dbms_network_acl_admin.assign_acl (       -- 可以授权多个主机,或者多个主机的多个端口
    acl        => 'utl_http.xml',
    host       => '10.100.49.138',
    lower_port => 80,
    upper_port => NUll
  );
  commit;
end;
 
请求测试:

?

1

select utl_http.request('http://localhost:9000/hello?wsdl') From dual;

  若出现no listener,是因为授权主机时不能写localhost,应该写ip地址或者域名,如下图:

  移除acl和权限控制

  撤销分配acl到hostacl -- 与assign对应

?

1
2
3
4
5
6
7
8
9
10
11
12

begin
  dbms_network_acl_admin.unassign_acl(
 
    acl        => 'utl_http.xml',
    host       => '100.1.2.1',             
                                             
    lower_port => 9000,                    
    upper_port => Null   
  );
end;
 
删除用户的权限

?

1
2
3
4
5
6
7

begin
  dbms_network_acl_admin.delete_privilege(
    'utl_http.xml', 'ITS', NULL, 'resolve'
  );
end;
 
-- 删除acl配置文件

?

1
2
3
4
5

begin
  dbms_network_acl_admin.drop_acl(
    'utl_http.xml'
  );
end;

时间: 2025-01-07 16:38:49

oracle11g之ACL拙见的相关文章

acl-怎么设置ACL访问控制?

问题描述 怎么设置ACL访问控制? 举个例子 ,给1.1.1.24用户设置黑名单 ,他不能访问 优酷和百度. 给1.1.1.6用户设置白名单,他只能访问土豆

oracle 11g-linux下安装oracle11g

问题描述 linux下安装oracle11g 在linux系统下安装oracle11g,在语言选择那个步骤出错, 解决方案 1.Linux环境配置准备 环境:Linux:Redhat Enterprise 5.4,DB:Oracle 11g R2 X64,Oracle安装到/home/oralce_11目录下. 配置过程如下:(大部分是网上的内容,个人也是按照网上步骤来的) 1)???????? 检查基本需求(对于牛逼的服务器来说,这个肯定是满足要求的,可以跳过)?内存大小?grep MemT.

密不透风的管理:用ACL构建防火墙体系

随着Internet/Intranet的飞速发展,全国各企事业单位都在建设局域网并连入互联网,但信息网络安全一直是我们关心的问题,所以本文提出了在路由器下通过访问控制列表(ACL)来构建计算机网络的防火墙体系结构. 一个组织全局的安全策略应根据安全分析和业务需求分析来决定,因为网络安全与防火墙关系紧密,所以我们要正确设置网络的安全策略,使防火墙发挥最大的作用. 网络防火墙安全策略是指要明确定义哪些数据包允许或禁止通过并使用网络服务,以及这些服务的使用规则.而且,网络防火墙安全策略中的每一条规定都

如何有效的逃脱被搜索K掉的厄运之拙见(新站长进老鸟免)

站长 如何有效的逃脱被搜索K掉的厄运之拙见(新站长进老鸟免) 1.不要自动采集,我这里说的采集是那种做好了规则,设定好了时间系统自动完成的,这样有个缺点就是所有网页中你任何元素统统采集入库了,包括文章中有些<table>或者<img=>之类的东西是你根本不需要的,也正是如此,搜索引擎就更加确定你的内容不是原创,而是简单的复制来自互联网上的内容. 如果这样的内容在你网站中占的比例足够高了,结果呵呵~~ 2.对于搜索不要总是等到被k了才出来骂baidu或者google,聪明点,他们使用

H3C ACL应用到接口的几种命令

访问控制列表的使用用途是依靠数字的范围来指定的,1000-1999 是基于接口的访问控制列表,2000-2999 范围的访问控制列表是基本的访问控制列表,3000-3999范围的访问控制列表是高级的访问控制列表.有两种匹配顺序:配置顺序.自动排序:acl number acl-number [ match-order { config | auto } ] H3C ACL应用到接口的几种命令: 一.packet-filter inbound ip-group acl-number(版本3.10)

巧用Squid的ACL和访问列表实现高效访问控制

Squid是一个缓存Internet数据的软件,其接收用户的下载申请,并自动处理所下载的数据.当一个用户想要下载一个主页时,可以向Squid发出一个申请,要Squid代替其进行下载,然后Squid连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户申请同样的页面时,Squid把保存的备份立即传给用户,使用户觉得速度相当快.Squid可以代理HTTP.FTP.GOPHER.SSL和WAIS等协议并且,Squid可以自动地进行处理,可以根据自己的需要设置Squid,使之过滤掉

编程实现遍历ACL访问控制列表检查进程访问权限

阅读本文的朋友需要对Windows访问控制模型有初步的了解,了解Token(访问令牌),ACL(访问控制列表),DACL(选择访问控制列表),ACE(访问控制列表项)等与访问控制模型相关的名词含义及之间的关系,当然我也会在文中简要科普一下ACM. 写这篇文章的目的主要是最近在写一个Win下本地提权的东西,涉及到了对ACL的操作,以前对ACL总是避而远之,Windows访问控制模型很复杂很头疼一个API会牵出一大把初始化要用的API.毕竟涉及到用户访问的安全,肯定不能让编程人员随意更改这些机制,复

使用分发列表加ACL控制路由更新

拓扑说明: R1和R2运行eigrp,R2和R3及R4运行ospf,进行双向重分发路由 列表加ACL控制路由更新-acl访问控制列表"> 实验目的:使用分发列表控制路由更新 熟悉ACL的permit和Deny在路由重分发中的作用 Distribute-list in/out 接口/路由协议 一.基本重分发,每台路由器学习到所有的路由 R2: Ospf:redistribute eigrp 90 subnets Eigrp:redistribute ospf 110 metric 1544

静态nat与标准acl的混合使用

静态nat与标准acl 的混合使用 <1>.将pc0和pc1得ip转换为环回地址. <2>.阻止1.1.1.2 的通信 Router 1配置: Router>en Router#conf t Enter configuration commands, one per line. End with CNTL/Z. Router(config)#int f 0/0 Router(config-if)#ip add 1.1.1.1 255.0.0.0 Router(config-i