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;

分类:Oracle教程 时间:2012-01-02 人气:8
本文关键词:
分享到:

相关文章

  • acl访问控制列表实验 2012-01-03

    acl访问控制列表实验 实验拓扑图如上 www.2cto.com 1.配置IP地址R1与R3 Loopback0=x.x.x.x/24 IP=192.168.yx.x/24 2.用rip宣告,测通信 3. R1与R3配置VTY与特权口令cisco,测试能否TELNET 配置R1 R1(config)#int s0/3/0 R1(config-if)#clo rat 64000 R1(config-if)#ip add 192.168.21.1 255.255.255.0 R1(config-if

  • Cisco交换机端口聚合.VTP.ACL配置实例 2012-02-02

    Cisco交换机端口聚合、VTP、ACL配置实例 网络拓扑: **************** 基本配置 **************** SW1> en ;进入特权模式 SW1# conf t ;进入全局配置模式 SW1(config)# hostname SW1 ;设置交换机的主机名 SW1(config)# enable secret cisco ;设置特权加密口令 SW1(config)# enable password cisco ;设置特权非密口令 SW1(config)# l

  • Cisco交换机的ACL怎么设置-过滤经典配置 2012-02-17

    在交换机上创建 ACL 时, 可以用字符串也可以用数字来命名 ACL,一般可采用 字符串+数字的方式加以命名,以便于识别;至于是标准 ACL 还是扩展ACL,是通过字段来识 别的,如标准 ACL 用standard 识别,扩展 ACL 用extended 识别。 下例的配置显示如何在交换机上创建一条扩展 ACL,名字为 anti-virus,并将这条 ACL 应用 到 fastEthernet 0/1 端口的 in 方向: Switch#configure terminal www.2cto.c

  • ACL过滤奇数或者偶数路由 2012-03-29

    ACL过滤奇数或者偶数路由 一个多协议网络中,客户地址分配很细,很多: www.2cto.com 192.168.1.0/24 192.168.2.0/24 192.168.3.0/24 192.168.4.0/24 192.168.5.0/24 …………………….. 某些网络需要将所有的偶数位的网段进行过滤 分析: 由于要求R1仅能够学习到R3的奇数位的网络号或是偶数号的网络号.将各个子 网拆成二进制观察规律 192.168.1.0/24192.168.00000001.0/24 192.16

  • Zookeeper ACL(使用node-zookeeper-client) 2012-03-30

    再分布式系统中,ACL(Access Control)十分重要;Zookeeper也提供了十分好用的ACL接口,下面我记录一下在nodejs下如何实现zookeeper的访问控制。 Zookeeper的ACL通常表示为:Scheme:Id:Permission,即Scheme,Id,Permission三个部分。其中,Scheme表示使用何种方式来进行访问控制,Id代表用户,Permission表示有什么权限。 ZooKeeeper has the following built in sche

  • 奇偶ACL的网络号匹配 2012-04-03

    奇偶ACL的网络号匹配 实验TOPO: www.2cto.com 实验要求:使用ACL,route-map配合重发布,R1仅能够学习到奇数位的网络号或是偶数位的网络号,即192.168.x.0的x为奇或为偶. 实验步骤一:配置各路由器的IP,并且确认直接接口可以PING通. 实验步骤二:配置RIP和OSPF的协议,同时network正确的网络接口,并且注意passive-interface的使用 实验步骤三:在R2上配置重发布,确认网络是可以通过重发布学习到所有的网络. 题目要求分析: www.

  • 使用三层交换机的ACL实现不同vlan间的隔离 2012-04-05

    使用三层交换机的ACL实现不同vlan间的隔离 建立三个vlan vlan10 vlan20 vlan30 www.2cto.com PC1 PC3属于vlan10 PC2 PC4属于vlan20 PC5属于vlan30 Vlan10 vlan20 vlan30不能互访 但是能上外网 Pc1 :172.16.10.2 pc2: 172.16.20.2 pc3:172.16.10.3 pc4:172.16.20.3 pc5: 172.16.30.2 配置R1 Int f0/0 Ip add 192

  • cisco ACL的类型 2012-04-25

    cisco ACL的类型 Cisco ACL 有两种类型:标准 ACL 和扩展 ACL。 www.2cto.com 标准 ACL 标准 ACL 根据源 IP 地址允许或拒绝流量。数据包中包含的目的地址和端口无关紧要。右侧的示例允许来自网络 192.168.30.0/24 的所有流量。因为 ACL 末尾隐含了 “deny any”,所以它将阻止所有其它流量。标准 ACL 在全局配置模式中创建。 扩展 ACL 扩展 ACL 根据多种属性(例如,协议类型、源和 IP 地址、目的 IP 地址、源 TCP

  • 学习笔记:ACL详解 2012-12-25

    ACL详解 Linux权限非常的一重要,正常情况下一个文件或目录有三种角色,分别为:目录或文件拥有者(User)、所属群组(Group)、其他用户(Other),每个角色对应:读、写、可执行(rwx)。这也是我们最常见的权限,#ls -l 所看到第一列内容。第一位是文件类型,如 d 是目录、-是普通文件、l 是链接文件、c 是字符文件、b 是块文件等。 剩下9位即是文件对应三种角色的权限。如下图: 还会有其它一些特殊权限,如SUID、SGID、 Sticky bit,还有一些需要通过命令lsat

Copyright (C) quwantang.com, All Rights Reserved.

趣玩堂 版权所有 京ICP备15002868号

processed in 0.045 (s). 10 q(s)