https://oracle-base.com/articles/11g/fine-grained-access-to-network-services-11gr1
http://remidian.com/2013/01/email-network-access-in-oracle-11g-network-access-control-list-acl/
24247 ORA-24247: 네트워크 액세스가 ACL(액세스 제어 목록)에 의해 거부되었습니다.
1. sys/sysadmin으로 로그인
2. 아래 스크립트 실행
begin
DBMS_NETWORK_ACL_ADMIN.CREATE_ACL(
acl => 'network_services.xml',
description => 'NETWORK ACL',
principal => 'PUBLIC',
is_grant => true,
privilege => 'connect');
DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(
acl => 'network_services.xml',
principal => 'PUBLIC',
is_grant => true,
privilege => 'resolve');
DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL(
acl => 'network_services.xml',
host => '*');
commit;
end;
네트워크확인
SELECT *
FROM DBA_NETWORK_ACLS;
1 SELECT acl, 2 principal, 3 privilege, 4 is_grant, 5 TO_CHAR(start_date, 'DD-MON-YYYY') AS start_date, 6 TO_CHAR(end_date, 'DD-MON-YYYY') AS end_date 7* FROM dba_network_acl_privileges
권한부여
BEGIN
DBMS_NETWORK_ACL_ADMIN.assign_acl (
acl => 'acl_scott.xml',
host => 'mail.********.nl',
lower_port => 25,
upper_port => NULL);
COMMIT;
오라클 메일 패키지 사용을 위해서 오라클DB에서 SMTP 메일서버를 접근할 수 있도록 환경설정을 해줘야 한다.
(가정) 오라클 DB의 TEST1 유저에게 메일을 보낼수 있는 권한을 부여한다고 가정했을 때
1. SYS유저로 ORADBA 권한으로 로그인
CONN sys/password@db11g AS SYSDBA |
2. 새로운 ACL(Access Control List) 파일 생성
(아래 스크립트의 경우 network_services.xml acl을 XML DB에 신규로 생성하면서 TEST1유저에게 외부 host의 network service에 접속을 허용)
BEGIN DBMS_NETWORK_ACL_ADMIN.create_acl ( acl => 'network_services.xml', -- acl 파일명 description => 'A network_services of the ACL functionality', -- 설명 principal => 'TEST1', -- 오라클 DB 유저 (반드시 대문자 사용) is_grant => TRUE, -- 권한여부 privilege => 'connect', -- 권한종류 (반드시 소문자 사용) start_date => SYSTIMESTAMP, -- 시작일자 end_date => NULL); -- 종류일자 COMMIT; END; |
3. IP Adress 또는 Network Host Name에 접속가능하도록 resolve 권한 추가 부여
(network_services.xml을 2번에서 생성했으므로 Add가 필요하며 이후 추가적으로 다른 유저에게 connect 또는 resolve 권한을 주기 위해서는 아래 내용을 계속 사용하면 됩니다)
BEGIN DBMS_NETWORK_ACL_ADMIN.add_privilege ( acl => 'network_services.xml', principal => 'TEST1', is_grant => TRUE, privilege => 'resolve', position => NULL, start_date => NULL, end_date => NULL); COMMIT; END; |
4. 네트워크 호스트 지정(접속할 메일 서버 IP를 등록)
BEGIN DBMS_NETWORK_ACL_ADMIN.assign_acl ( acl => 'network_services.xml', host => '192.168.2.3', -- 접속할 메일서버의 ip 또는 DNS, * 를 입력하면 전부 허용 lower_port => NULL, -- 기본으로 NULL을 입력하고 제한이 필요할 경우 입력 upper_port => NULL); COMMIT; END; |
5. 등록 내용 확인
SELECT * |
여기까지가 완료되면 메일을 보내기 위한 기본적인 환경을 설정한 것입니다.
권한 삭제 및 추가 등은 아래 사이트를 참고하시면 됩니다.
'알아두면 좋은 정보 > 유용한 IT 정보' 카테고리의 다른 글
데브옵스 (0) | 2019.03.12 |
---|---|
CSV 데이타 export시 한글깨짐 해결 (0) | 2019.03.06 |
graphQL 그래프큐엘은 또 머임.. (0) | 2019.03.03 |
자바 콜백 인터페이스 callback java interface (0) | 2018.03.29 |
Node.js - 웹스톰 (0) | 2018.03.29 |