2010년 4월 16일 금요일

ORA-01031: insufficient privileges 오류

출처 : 어드민플레이

 

connect system/xxxxxxx as sysdba 즉 SYSDBA로 로그인 할 때  ORA-01031: insufficient privileges 가 나는 경우

sysdba를 붙여 로그인 하는 방법은 Oracle의 Password 인증방식을 이용한다.

첫번째로 패스워드 인증방식을 쓸수있는 유저가 누구인지 먼저 알아보자.
SQL> select * from v$pwfile_users;
USERNAME                           SYSDB SYSOP
------------------------------ ----- -----
SYS                                     TRUE  TRUE
TEST_USER                           TRUE  FALSE

SYSTEM 계정을 원격으로 접속하기 위해 추가 해본다.

SQL> show user;
USER은 "SYS"입니다

SQL> grant sysdba to system;
SQL> select * from v$pwfile_users;
USERNAME                           SYSDB SYSOP
------------------------------ ----- -----
SYS                                     TRUE  TRUE
TEST_USER                           TRUE  FALSE
SYSTEM                               TRUE  FALSE

위와 같이 권한을 부여하면 간단하게 SYSTEM 계정으로 원격접속 할 수 있다.

또한
sqlnet.ora 파일에서
SQLNET.AUTHENTICATION_SERVICES= (NONE) 부분을
SQLNET.AUTHENTICATION_SERVICES= (NTS) 로 수정 후 리스너를 재시작시키고
connect / as sysdba로 접속하면 되지만 이는 보안상 권장할 사항은 아니다.

보안상으로
1. sqlnet.ora 파일에서
   SQLNET.AUTHENTICATION_SERVICES= (NONE)으로 설정
   -> connect / as sysdba로 접속 불가(이는 누구나 알고 있는 명령이므로 보안상 위험.
       반드시 패스워드 파일을 이용한 패스워드 인증 사용하는 것임

2, remote_login_passwordfile 파라미터는 반드시 EXCLUSIVE 로 설정 하기를 권장한다.

sysdba는 일반 DBA보다 더 큰 권한을 가지며 DB를 내렸다 올렸다 할 수 있으며 DB를 삭제할 수도 있다

댓글 없음:

댓글 쓰기