오라클 관리자 실습과정

2020. 1. 6. 10:51Security/oracle database

사용자 세션의 확인과 제한 모드를 위한 사용자의 강제 종료

SQL> ALTER SYSTEM [ENABLE | DISABLE] RESTRICTED SESSION;
- 제한 모드 상태를 활성화/비활성화 한다. 실제 필드에서 비활성화 하는 경우는 거의 없다. 

 

SQL> SELECT LOGINS FROM V$INSTANCE;
- 제한모드의 활성화 상태를 조회한다.
- restriced는 제한모드 상태, allowed는 일반 모드 상태를 나타낸다.

 

SQL> SELECT SID, SERIAL#, USERNAME, STATUS FROM V$SESSION;
- DB에 접속 중인 세션을 확인한다.
- 각 세션은 SID(세션 ID)와 SERIAL#를 이용 구별된다.

 

SQL> ALTER SYSTEM KILL SESSION <'SID번호, SERIAL번호'>;
- 지정한 세션을 강제 종료한다.

 

SQL> SELECT * FROM DBA_SYS_PRIVS;
- 사용자나 role에 부여된 시스템 권한을 조회.

 

SQL> GRANT <시스템 권한> TO <user명>;
- 권한을 할당한다.

 

SQL> REVOKE <시스템 권한> FROM <user명>;
- 권한을 해제한다.

 

[실습]

#SELECT logins FROM v$instance;

allowed로 되어있으니 제한모드가 아닌 일반 모드임을 확인할 수 있다.

만약 ALTER SYSTEM ENABLE RESTRICTED SESSION 명령을 통해 제한 모드를 활성화 한 상태

제한 모드 활성화 후에 다른 사용자는 로그인 할 수 없다. 

제한 모드 전에 로그인한 사용자

그러나 제한 모드 전에 로그인한 사용자가 있다면 소급적용되지 않는다. 즉, 문제없이 사용 가능하다.

만약 로그인된 사용자의 세션을 비활성화 하고싶다면

 

#SELECT sid, serial#, username, status FROM v$session

명령을 통해 활성화된 세션을 확인 후에 ,ALTER SYSTEM KILL SESSION 명령으로 비활성화 할 수 있다.

KILL 명령에 의해 비활성화 된 사용자 세션

#SELECT * FROM dba_sys_privs WHERE privilege LIKE '%RESTRICT%';

사용자나 ROLE에 부여된 권한 조회

#GRANT restricted session TO php;

php계정에 제한모드에 접속할 수 있는 권한을 부여한다면 제한모드 일때도 php로 접속이 가능하다.

다시 php 계정에 제한모드에 접속할 수 있는 권한을 해제하고 제한모드 상태를 비활성화

 

* 파라미터 파일

파라미터 파일 확인

SELECT name, value FROM V$PARAMETER;

-> 파라미터의 이름과 설정된 값을 확인

 

SHOW PARAMETER <parameter 명>

-> 설정된 파라미터 값을 확인. 

 

파라미터 파일 확인과 수정

SQL> ALTER SYSTEM SET  = <값>;
- 지정한 파라미터의 값을 수정한다.
- spfile 사용 환경에서 설정된 파라미터 값은 항구적으로 수정된다.
- 동적인 파라미터만 수정 가능하다.

 

SELECT NAME, VALUE FROM V$SPPARAMETER;
- spfile에 설정된 값을 조회한다.

 

[실습]

현재 운영중인 파라미터 파일의 설정값과 SP파일의 파라미터 설정값이 다른 것을 확인할 수 있다.

undo_retention 파라미터의 값을 수정하고 데이터베이스를 다시 시작해도 변화된 값이 유지되는 것을 확인할 수 있다.

 

spfile 운영 환경에서 scope 설정에 따란 parameter값의 변화

SQL> ALTER SYSTEM SET  = <값> SCOPE = [SPFILE | MEMORY | BOTH];
- 지정한 parameter의 값을 수정한다.
- SCOPE 절은 spfile 운영 환경인 경우만 사용한다.
-> SPFILE : spfile만 수정한다. (정적 parameter 수정에서는 필수)
-> MEMORY : 현재 DB의 parameter 설정 값만 수정. spfile은 수정하지 않음으로 DB를 재시작하면 리셋 된다. 
-> BOTH : spfile과 instance의 설정된 parameter값을 모두 수정한다.(default값)

 

[실습]

SCOPE옵션을 memory로 했을 경우 현재 파라미터 파일의 값은 수정됐지만 sp파라미터 값은 수정되지 않았음을 확인할 수 있다. 이런 경우 오라클을 재시작 할 경우 그대로 300으로 유지되어있다.

반대로 SCOPE 옵션을 spfile로 했을 경우 현재 파라미터 파일의 값은 그대로고 sp 파라미터 파일의 값은 수정 된 것을 확인할 수 있다. 이 경우에는 오라클을 재시작하면 500으로 변경된 것을 확인할 수 있다.