2020. 1. 6. 10:51ㆍSecurity/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으로 변경된 것을 확인할 수 있다.
'Security > oracle database' 카테고리의 다른 글
오라클 데이터베이스 관리자 기초-(5)리두 로그 파일 유지 관리 (0) | 2020.01.07 |
---|---|
오라클 데이터베이스 관리자 기초-(4)컨트롤 파일 유지 관리 (0) | 2020.01.07 |
오라클 데이터베이스 관리자 기초-(3)데이터 딕셔너리 및 동적 성능 뷰 사용 (0) | 2020.01.02 |
오라클 데이터베이스 관리자 기초-(2)Oracle 인스턴스 관리 (0) | 2019.12.26 |
오라클 데이터베이스 관리자 기초-(1)Oracle 구조 구성 요소 (0) | 2019.12.24 |