본문으로 건너뛰기

지갑 없이 접속하기

Oracle Autonomous Database는 기본적으로 mTLS, 즉 전자 지갑(wallet) 파일을 내려받아 클라이언트에 설치하는 방식으로 인증한다. 지갑을 관리하지 않고 접속하려면 TLS 전용으로 전환해야 하는데, 맥과 DBeaver 조합으로 이걸 설명하는 한글 문서를 찾지 못해 정리해 둔다.

Autonomous DB 인스턴스가 이미 생성되어 있다고 전제한다.

1. 네트워크 액세스 제어 목록(ACL) 설정

mTLS를 끄려면 먼저 접근 제어가 있어야 한다. 데이터베이스의 네트워크 설정에서 액세스 제어 목록에 접속을 허용할 IP를 등록한다. 지갑 인증을 포기하는 대신 IP 제한으로 접근을 좁히는 셈이다.

2. 상호 TLS를 TLS로 전환

같은 네트워크 설정에서 상호 TLS(mTLS) 필수 여부를 TLS로 변경한다. ACL이 먼저 설정되어 있어야 이 전환이 허용된다.

3. 접속 문자열 복사

DB 접속 정보에서 TLS용 접속 문자열을 복사한다. 이름이 _high, _medium, _low 등으로 나뉘어 있는데 동시성과 자원 할당 정책이 다르다. 무엇을 골라야 할지 모르겠으면 일단 첫 번째 것으로 시작해도 된다.

4. JDBC URL 만들기

여기가 핵심이다. 복사한 접속 문자열 앞에 jdbc:oracle:thin:@ 를 붙이면 그대로 JDBC URL이 된다.

jdbc:oracle:thin:@(description= (retry_count=20)(retry_delay=3)(address=(protocol=tcps)(port=1521)(host=adb.ap-seoul-1.oraclecloud.com))(connect_data=(service_name=asdasdasdas.adb.oraclecloud.com))(security=(ssl_server_dn_match=yes)))

protocol=tcpsssl_server_dn_match=yes 가 남아 있는지 확인한다. 지갑을 쓰지 않을 뿐 전송 구간은 여전히 TLS다.

5. DBeaver 설정

DBeaver의 Oracle 커넥션에서 Connection Type을 Custom 으로 바꾼다. 기본값(SID/Service Name 입력 방식)으로는 위 형태의 URL을 넣을 수 없다.

Custom으로 바꾸면 나타나는 JDBC URL Template 필드에 4번에서 만든 URL을 붙여넣고, username과 password를 채운 뒤 Test Connection으로 확인한다. 지갑 파일 경로를 묻는 항목은 등장하지 않는다.

정리

  • 지갑 없이 접속하려면 ACL 등록이 선행 조건이고, 그다음에 mTLS를 TLS로 내릴 수 있다.
  • 클라이언트 쪽 작업은 사실상 jdbc:oracle:thin:@ + 접속 문자열 조립 하나뿐이다.
  • DBeaver에서 막힌다면 대개 Connection Type이 Custom이 아니어서다.