실습 4. Password File 관리하기
4-1. sys 계정으로 로그인 시 암호 묻도록 설정하기
Oracle 을 처음 설치하시면 sys 계정으로 접속할 때 암호를 안 묻고 누구나 쉽게 login 을 허용해주게 됩니다.
이로 인해서 아주 심각한 문제를 초래할 수 도 있습니다. 그래서 처음 설치 후 별도의 작업을 해서 passwd 파일이 있어도
sys 계정의 암호를 꼭 물어보도록 설정을 변경해야 합니다. 아래와 같이 sqlnet.ora 파일을 변경하면 됩니다.
$ sqlplus / as sysdba
SQL> exit
$ cd $ORACLE_HOME/network/admin
# ls
Step1. 먼저 Oracle Server 에 oracle 계정으로 로그인 한 후 터미널에서 netca 를 실행합니다.
Step2. 아래와 같이 local naming, Easy connect naming 을 오른쪽으로 보냅니다.
위와 같이 한 후 next 눌러서 종료하면 sqlnet.ora 파일이 생성됩니다.
$ ls
$ vi sqlnet.ora
NAMES.DIRECTORY_PATH=(TNSNAMES, EZCONNECT)
ADR_BASE = /app/oracle
SQLNET.INBOUND_CONNECT_TIMEOUT = 10
sqlnet.authentication_service=(none)
:wq!
$ sqlplus / as sysdba
Enter user_name: sys/oracle as sysdba
계정과 암호를 입력해야 합니다.
실습 2. 패스워드 파일 이 삭제되었을 경우 조치법
[oracle@localhost admin]$ cd $ORACLE_HOME/dbs
[oracle@localhost dbs]$ ls
hc_DBUA0.dat init.ora lkTESTDB spfiletestdb.ora
hc_testdb.dat orapwtestdb <-- password file 입니다
[oracle@localhost dbs]$ rm -fr orapwtestdb <- 삭제합니다
[oracle@localhost dbs]$ sqlplus sys/oracle as sysdba <-- 정상적으로 접속 시도합니다.
SQL*Plus: Release 11.2.0.2.0 Production on Thu Aug 8 07:44:55 2013
Copyright (c) 1982, 2010, Oracle. All rights reserved.
ERROR:
ORA-01031: insufficient privileges
Enter user-name: sys/oracle as sysdba <-- 올바른 계정과 암호를 입력하지만 에러납니다
ERROR:
ORA-01031: insufficient privileges
Enter user-name:
위와 같이 Password File 이 삭제될 경우 올바른 계정과 암호를 입력해도 로그인이 안됩니다.
orapwd 유틸리티를 사용하여 Password File 을 새로 생성하면 해결됩니다.
아래를 참고하세요.
[oracle@localhost dbs]$ orapwd
Usage: orapwd file=<fname> entries=<users> force=<y/n> ignorecase=<y/n> nosysdba=<y/n>
where
file - name of password file (required),
password - password for SYS will be prompted ifnot specified at command line,
entries - maximum number of distinct DBA (optional),
force - whether to overwrite existing file (opt ional),
ignorecase - passwords are case-insensitive (optional),
nosysdba - whether to shut out the SYSDBA logon(optional Database Vault only).
There must be no spaces around the equal-to (=) character.
여러 가지 옵션이 나오는데 sys의 암호를 oracle 로 설정해서 생성하겠습니다.
[oracle@localhost dbs]$ orapwd file=/app/oracle/product/11g/dbs/orapwtestdb
Enter password for SYS: (이곳에 sys의 암호를 입력합니다)
[oracle@localhost ~]$ sqlplus sys/oracle as sysdba
SQL*Plus: Release 11.2.0.2.0 Production on Thu Aug 8 07:50:30 2013
Copyright (c) 1982, 2010, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
이 두 번째 tip 을 이용하면 sys 계정의 암호를 몰라 로그인을 못할 경우 암호를 새로 설정 할 수
도 있습니다. 즉 기존에 설정된 sys 계정의 암호를 모를 경우 기존 orapwSID 파일 을 삭제 한 후
orapwd 유틸을 이용하여 암호파일을 다시 생성하면서 새로운 암호를 설정하시면 sys 계정의 암
호가 새로운 암호로 변경되고 sys 계정으로 로그인 할 수 있습니다.
유용하기도 하지만 보안상 위험하기도 하니 잘 관리하시길 바랍니다.