Oracle

게시글 보기
작성자 유건데이타 등록일 2015-05-14
제목 AS SYSDBA로 접속할때 PASSWORD 걸기
AS SYSDBA로 접속할때 PASSWORD 걸기
============================


PURPOSE
-------
AS SYSDBA로 접속할 때 PASSWORD 설정하는 방법


Explanation
-----------

오라클 9i에서는 internal로 접속을 하였을 때
ORA-09275: CONNECT INTERNAL is not a valid DBA connection
를 경험할 수 있다.
오라클 9i 서버에서는 connect internal을 사용하지도 않고, as sysdba와
as sysoper로 logon하여 DATABASE를 구동할 수 있다.

여기서 다루고자 하는 것은 Platform에 관계없이 oracle dba group이라면 기존에는
password를 점검하지 않고 사용할 수 있었다.
그러나, 여러가지 보안상의 이유로 password를 걸었을 때
ORA-01031: insufficient privileges와 같은 message나, password를 묻지않고
bypass하는 경우를 알아보고자 한다.


9i에서는 svrmgrl command가 없어 졌으며 sqlplus internal도 사용할 수 없다.


Explanation
-----------
1. OS 및 Platform에 관계없이 $ORACLE_HOME/dbs 디렉토리에서
오라클사용자로 orapwd tool을 사용하여 password file을 생성한다.
기존에 password file이 존재한다면 password 파일을 Remove 또는
rename하여 별도로 보관하여도 된다.

Usage: orapwd file= password= entries=

where

file - name of password file (mand),
password - password for SYS and INTERNAL (mand),
entries - maximum number of distinct DBA and OPERs (opt),
There are no spaces around the equal-to (=) character.


$orapwd file=orapw password=[password]
$orapwd file=orapw password=[password] entries=10

위와 같이 하였을때 생성된 password 파일의 크기는 차이기 있을수 있다.

2. init.ora를 사용하는 경우
init.ora file를 편집기로 open한 다음 아래처럼 기술한다.
대소문자의 구분은 없습니다.

REMOTE_LOGIN_PASSWORDFILE = EXCLUSIVE

3. spfile을 사용하는 경우

아래의 절차처럼 dynamic하게 변경하여 주어야 한다.

SQL> show parameter spfile

NAME TYPE VALUE
---------- ---------- ---------
spfile string ?/dbs/spfile@.ora

SQL> show parameter remote

NAME TYPE VALUE
------------------------------------ ----------- ---------------
remote_archive_enable boolean TRUE
remote_dependencies_mode string TIMESTAMP
remote_listener string
remote_login_passwordfile string
remote_os_authent boolean FALSE
remote_os_roles boolean FALSE

SQL> alter system set remote_login_passwordfile=exclusive scope=spfile ;

System altered.

SQL> show parameter spfile

NAME TYPE VALUE
------------------------------------ ----------- ------------------
spfile string ?/dbs/spfile@.ora

SQL> show parameter remote

NAME TYPE VALUE
------------------------------------ ----------- ---------------
remote_archive_enable boolean TRUE
remote_dependencies_mode string TIMESTAMP
remote_listener string
remote_login_passwordfile string EXCLUSIVE
remote_os_authent boolean FALSE
remote_os_roles boolean FALSE

4. SQLNET.ORA 파일 편집.
password를 설정하기 위해서는 반드시 아래와 같이 sqlnet.ora 파일을
에디터로 open한 다음 아래처럼 기술하여야 한다.

$ echo $TNS_ADMIN
/d02/rctest/app/oracle/product/9.0.1/networ/admin

SQLNET.AUTHENTICATION_SERVICES = (NONE)


5. 위와 같은 작업을 순서대로 하였고 password를 정상적으로 입력하였는데도
logon이 되지 않는다면 1031, 00000, "insufficient privileges" 같은 message가
계속 나타난다면 orapwd를 password와 sys user의 password가 일치하는지를
확인한 다음 sqlplus로 접속하여야지만 아래처럼 정상적으로 logon를 할 수 있다.


Example
-------

[ora9i:/d02/rctest]sqlplus "/as sysdba"

SQL*Plus: Release 9.0.0.0.0 - Beta on Thu May 30 10:55:46 2002

(c) Copyright 2001 Oracle Corporation. All rights reserved.

ERROR:
ORA-01031: insufficient privileges


Enter user-name: sys
Enter password: ----> password와 as sysdba 를 함께 입력

Connected to:
Oracle9i Enterprise Edition Release 9.0.0.0.0 - Beta
With the Partitioning option
JServer Release 9.0.0.0.0 - Beta

SQL>

[ora9i:/d02/rctest]sqlplus /nolog

SQL*Plus: Release 9.0.0.0.0 - Beta on Thu May 30 10:57:45 2002

(c) Copyright 2001 Oracle Corporation. All rights reserved.

SQL> connect sys/manager
ERROR:
ORA-28009: connection to sys should be as sysdba or sysoper

SQL> connect sys/manager as sysdba
Connected.
SQL>
Comment
등록된 코멘트가 없습니다.