Welcome 微信登录

首页 / 数据库 / MySQL / Oracle 11g下UTL_TCP包居然用不通了调研

今天切换到Oracle11g下后,接着使用UTL_TCP与服务程序进行数据交互时,居然报出个ACL访问控制的问题,幸亏以前还有过些网络的基础,还知道ACL是个什么东西,而在Oracle11g下为了加强网络访问的安全性,对ACL进行了一个软的实现。下面就如何突破ACL这一层,进行了Oracle有关DBMS_NETWORK_ACL_ADMIN进行调研,下面是一些总结:--ACL使用调研
关于让DBCoffer有关执行权限参考如下:
--用来获取主机IP或主机名
BEGIN
  DBMS_NETWORK_ACL_ADMIN.create_acl (
    acl          => "coffer_acl_file.xml", 
    description  => "A test of the ACL functionality",
    --参数为:一个用户或者是一个角色
    principal    => "COFFER",
    is_grant     => TRUE, 
    privilege    => "resolve"
    --start_date   => SYSTIMESTAMP,
    --end_date     => NULL
    );
  COMMIT;
END;
/
--让用户能够访问外网的相关端口与IP
BEGIN
  DBMS_NETWORK_ACL_ADMIN.add_privilege ( 
    acl         => "coffer_acl_file.xml", 
    --参数为:一个用户或者是一个角色
    principal   => "COFFER",
    is_grant    => TRUE, 
    privilege   => "connect"
    --position    => NULL, 
    --start_date  => NULL,
    --end_date    => NULL
    );
  COMMIT;
END;
/
--对这个访问控制列表指定一条规则
BEGIN
  DBMS_NETWORK_ACL_ADMIN.assign_acl (
    acl         => "coffer_acl_file.xml",
    host        => "*"); 
  COMMIT;
END;
/


--当升级一个DBCoffer用户时需要执行
BEGIN
  DBMS_NETWORK_ACL_ADMIN.add_privilege ( 
    acl         => "coffer_acl_file.xml", 
    --参数为:一个用户或者是一个角色
    principal   => "TEST",
    is_grant    => TRUE, 
    privilege   => "resolve"
    --position    => NULL, 
    --start_date  => NULL,
    --end_date    => NULL
    );
  COMMIT;
END;
/


BEGIN
  DBMS_NETWORK_ACL_ADMIN.add_privilege ( 
    acl         => "coffer_acl_file.xml", 
    --参数为:一个用户或者是一个角色
    principal   => "TEST",
    is_grant    => TRUE, 
    privilege   => "connect"
    --position    => NULL, 
    --start_date  => NULL,
    --end_date    => NULL
    );
  COMMIT;
END;
/


--当撤销一个DBCoffer用户时,需要执行
BEGIN
  DBMS_NETWORK_ACL_ADMIN.delete_privilege ( 
    acl         => "coffer_acl_file.xml", 
    --参数为:一个用户或者是一个角色
    principal   => "TEST",
    is_grant    => TRUE, 
    privilege   => "resolve");
  COMMIT;
END;
/


BEGIN
  DBMS_NETWORK_ACL_ADMIN.delete_privilege ( 
    acl         => "coffer_acl_file.xml", 
    --参数为:一个用户或者是一个角色
    principal   => "TEST",
    is_grant    => TRUE, 
    privilege   => "connect");
  COMMIT;
END;



--删除一个访问控制列表
BEGIN
  DBMS_NETWORK_ACL_ADMIN.drop_acl ( 
    acl         => "coffer_acl_file.xml");
  COMMIT;
END;
/关于MySQL数据库韩文数据转移的问题Oracle分区索引什么情况下会重建相关资讯      Oracle教程 
  • Oracle中纯数字的varchar2类型和  (07/29/2015 07:20:43)
  • Oracle教程:Oracle中查看DBLink密  (07/29/2015 07:16:55)
  • [Oracle] SQL*Loader 详细使用教程  (08/11/2013 21:30:36)
  • Oracle教程:Oracle中kill死锁进程  (07/29/2015 07:18:28)
  • Oracle教程:ORA-25153 临时表空间  (07/29/2015 07:13:37)
  • Oracle教程之管理安全和资源  (04/08/2013 11:39:32)
本文评论 查看全部评论 (0)
表情: 姓名: 字数