sqlplus / as sysdba 명령은 Oracle Database Instance가 설치된 DB서버의 Windows OS의 사용자 인증 정보를 사용해서 접속하는 명령이기 때문에 이를 사용 할 수 없는 클라이언트 환경에서 어떻게 as sysdba권한으로 원격에 있는 DB서버에 접속할 수 있는지 NG와 OK의 예를 들어 소개합니다.
전제 조건
“Oracle Database Instance의 “로컬 접속” 과 “원격 접속” 방식 비교하기” 글에서 소개한 “네트 서비스 이름“과 “쉬운 접속 형식” 이라는 네트워크를 경유하는 두 가지 “원격 접속” 방식이 있습니다. 이 글을 쉽게 이해하기 위해서는 꼭 다음 글을 참조 하시길 바랍니다.
(NG)클라이언트에서 “로컬 접속” 방식으로 “sqlplus / as sysdba“실행
위 그림과 같은 클라이언트 환경에서 네트 서비스 이름“과 “쉬운 접속 형식“의 원격 접속” 방식을 사용하지 않고 “sqlplus / as sysdba“의 명령을 사용하면 클라이언트 환경에서 Oracle Database Instance를 찾아 접속하려고 하기 때문에 다음 과 같이 오류가 발생합니다.
C:>sqlplus / as sysdba
SQL*Plus: Release 12.2.0.1.0 Production on Thu Jan 28 18:37:03 2021
Copyright (c) 1982, 2016, Oracle. All rights reserved.
ERROR:
ORA-12560: TNS:protocol adapter error
Enter user-name:
(NG)클라이언트에서 Oracle 사용자 인증 정보 없이 원격 접속
Oracle 사용자 인증 정보 없이 “192.168.127.128/orcl“와 같은 “쉬운 접속 형식“의 “원격 접속” 방식 방법을 사용하여 DB서버에 접속을 하려고 하면 다음과 같이 Oracle 사용자 인증 정보의 입력을 요구하는 에러가 표시됩니다. “sqlplus / as sysdba” 는 서버 환경에서 로컬 접속으로 데이터베이스에 접속할 때에만 사용할 수 있습니다.
C:>sqlplus /@192.168.127.128/orcl as sysdba
SQL*Plus: Release 12.2.0.1.0 Production on Thu Jan 28 18:42:31 2021
Copyright (c) 1982, 2016, Oracle. All rights reserved.
ERROR:
ORA-01017: invalid username/password; logon denied
Enter user-name:
(OK)클라이언트에서 Oracle 사용자 인증 정보 사용 원격 접속
NONE은 Oracle 사용자 인증 정보를 이용하겠다는 의미입니다. 그러므로 sys/password와 같은 Oracle 사용자 인증 정보와 192.168.127.128/orcl와 같은 “쉬운 접속 형식” 방법을 같이 사용하면 클라이언트 환경에서도 DB서버에 as sysdba권한으로 접속 할 수 있습니다. 참고로 메시지를 한글로 표시하기 위해 환경 변수 nls_lang의 값을 다음과 같이 설정 했습니다.
C:>set nls_lang=KOREAN_KOREA.KO16MSWIN949
C:>sqlplus sys/password@192.168.127.128/orcl as sysdba
SQL*Plus: Release 12.2.0.1.0 Production on 일 6월 27 17:18:48 2021
Copyright (c) 1982, 2016, Oracle. All rights reserved.
다음에 접속됨:
Oracle Database 12c Standard Edition Release 12.2.0.1.0 - 64bit Production
SQL>