본문 바로가기
Oracle/운영

[ACL,UTL_SMTP] 10g,11g 메일링 서비스 관련 이슈

by 취미툰 2023. 6. 16.
반응형

10g에서 사용중인 DB가 11g로 업그레이드 되었고, 기존 DB에서 사용중인 메링링 서비스가 11g에서는 에러를 뱉으며 되지 않았습니다. 그에 따른 해결방법 정리하였습니다.

 

에러메세지

ORA-29260 네트워크 오류 : 접속되지 않음
ORA-06512 'SYS.UTL_TCP'  231행
ORA-06512 'SYS.UTL_TCP' 460행
ORA-24248 XML DB 확장 가능한 보안이 설치되지 않았습니다.

 

원인

Oracle 버전 업에 따른 MAILING 방식이 추가 됨.

보안 레벨을 향상시키지위해 network-related PL/SQL package에 대해 runtime시 실행하는 사람(invoker)에 대한 추가적인 권한이 요구되도록 변경됨. (XML DB access control list(ACL))을 통해 구현됨.
출처 : https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=jinh2004&logNo=80139511224

 

비교해보니
10g에는 XDB스키마가 없음.  11g는 XDB 스키마가 있고 (XDB.DBMS_XDB가 필요) 하고 등록하는 프로시저가 있음. (DBMS_NETWORK_ACL_ADMIN.CREATE_ACL,DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL)
프로시저를 사용하기 위해서는 XDB관련 패키지가 설치되어 있어야 함.

 

XDB관련 패키지 설치법

sqlplus / as sysdba
@?/rdbms/admin/prvtxdb.plb
@?/rdbms/admin/utlrp.sql

 

해결

패키지를 사용하여 ACL을 생성하고 등록.

####ACL 생성

BEGIN
DBMS_NETWORK_ACL_ADMIN.CREATE_ACL (
acl => 'smtp-permissions.xml',
description => 'Permissions for smtp',
principal => 'ORAHRP', 
is_grant => TRUE,
privilege => 'connect'
);
COMMIT;
END;
/

###ACL 등록
BEGIN
DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL (
acl => 'smtp-permissions.xml',
host => '메일링 서버',
lower_port => '2525',
upper_port => null);
COMMIT;
END;
/

확인 쿼리

아래 쿼리로 등록되있는것을 확인

select * from dba_network_acls;
select * from dba_network_acl_privileges;

 

XML기능에 대해서 어렴풋이 알고있었는데, 해당 기능에 대해서 좀더 알수 있는 계기였습니다.

2023년 현재 다른 어플리케이션 호환때문에 11g로 upgrade하는 이상한 현상..

반응형

댓글