728x90
반응형

오라클에서 UTL_TCP 패키지를 사용하려고 할 때 ORA-24247: network access denied by access control list (ACL) 에러메시지가 나올 때가 있습니다.

ACL이란 Access Control Lists약자인데요. 오라클 DB에서 보안적인 측면에서 허용된 유저에게 접근 권한을 주려는 의도에서 만들어진 리스트입니다.

이 Resource는 Oracle XML DB Repository에 XML파일로 저장됩니다.

제가 DBA가 아니라서 오라클의 용어는 아직 많이 생소합니다.

우선 위의 에러가 나시면 일단


1. ACL 파일이 있는지 확인을 합니다.


1 SELECT * FROM dba_network_acls;


쿼리문을 실행하시면 리스트가 나옵니다.



2. 리스트가 없다면 새로 만들어 줍니다.


1 begin

2     dbms_network_acl_admin.create_acl (

3         acl => '/sys/acls/utl_mail.xml',

4         description => 'UTL MAIL Access',

5         principal => 'SCOTT',

6         is_grant => TRUE,

7         privilege => 'connect',

8         start_date => null,

9         end_date => null

10     );

11 end;


위의 문장을 실행하시면 해당 /sys/acls/utl_mail.xml 파일을 만들고 접근 권한을 SCOTT 유저에게 주겠다는 말입니다.



3.  마지막 단계로 특정 호스트를 실제로 ACL리스트에 추가합니다.


1 BEGIN

2     dbms_network_acl_admin.assign_acl (

3         acl => '/sys/acls/utl_mail.xml',

4         host => 'SMTP.GOOGLE.COM',

5         lower_port => 25,

6         upper_port => null

7     );

8 END;


Host 쪽에 접근하고자 하시는 호스트의 도메인명이나 아이피를 입력하시면 됩니다.


위와 같은 절차를 통해서 저는 에러를 해결하고 지금 Email 전송을 잘 하고 있습니다.

728x90
반응형
블로그 이미지

nineDeveloper

안녕하세요 현직 개발자 입니다 ~ 빠르게 변화하는 세상에 뒤쳐지지 않도록 우리모두 열심히 공부합시다 ~! 개발공부는 넘나 재미있는 것~!

,