Oracle ORA-24247: 网络访问被访问控制列表 (ACL) 拒绝

来源:互联网 发布:淘宝美元支付购物 编辑:程序博客网 时间:2024/05/24 11:13

调用Oracle发邮件,抛出异常:ORA-24247: 网络访问被访问控制列表 (ACL) 拒绝

原因:链接邮件服务器未授权

解决方案:1.创建访问控制列表(ACL) 2.将 ACL 与邮件服务器相关联  3.ACL 为用户授与连接邮件服务器的权限

BEGIN

  --1.创建访问控制列表(ACL)

  dbms_network_acl_admin.create_acl(acl         => 'email_server_permissions.xml',

                                    description => 'Enables network permissions for the e-mail server',

                                    principal   => 'oracle_user', --授权用户

                                    is_grant    => TRUE,

                                    privilege   => 'connect');

  --COMMIT;

  --2.将 ACL 与邮件服务器相关联

  dbms_network_acl_admin.assign_acl(acl        => 'email_server_permissions.xml',

                                    host       => '*.*.*.*', --主机名要做ip映射;SMTP服务器地址

                                    lower_port => 25,

                                    upper_port => NULL);

  --COMMIT;

  --3.ACL 为用户授与连接邮件服务器的权限

  dbms_network_acl_admin.add_privilege(acl       => 'email_server_permissions.xml',

                                       principal => 'oracle_user', --授权用户

                                       is_grant  => TRUE,

                                       privilege => 'resolve');

  --COMMIT;

END;

------查询acl配置信息

SELECT host, lower_port, upper_port, acl FROM dba_network_acls;

SELECT acl,

       principal,

       privilege,

       is_grant,

       to_char(start_date, 'DD-MON-YYYY') AS start_date,

       to_char(end_date, 'DD-MON-YYYY') AS end_date

  FROM dba_network_acl_privileges;

BEGIN

  --删除acl配置

  dbms_network_acl_admin.drop_acl(acl => 'email_server_permissions.xml');

  --COMMIT;

END;


0 0