본문 바로가기

데이터 사이언스 DataScience/Data Base 데이터베이스

[Oracle] Profile을 통한 계정관리

1. 필요성

개인정보를 관리하는 DB의 경우 계정 정책을 통한 데이터 관리가 필요한 경우가 있다.

 

회사의 개인정보취급 방침에 의한것일 수도 있고 

방송통신위원회의 개인정보 취급 가이드라인에 의한 것일수도 있고

https://kcc.go.kr/user.do?mode=view&page=A02030700&dc=K02030500&boardId=1099&cp=1&boardSeq=47488 

금융위원회 개인정보보호 가이드라인에 의한 것일수도 있고

https://www.fsc.go.kr/po010106/72612?srchCtgry=6&curPage=41&srchKey=&srchText=&srchBeginDt=&srchEndDt= 

 

개인정보와 상관없이 랜섬웨어나 DDoS 공격을 방어하기 위한 것일수도 있다.

 

아무튼 계정의 정책을 정해서 Profile로 관리하는 것은 계정을 관리하는 효과적인 관리 방법이고, 

각종 보안감사에서 요구하는 경우도 많다.

 

 

2. 옵션 종류

모든 옵션은 오라클 document에 확인할 수 있다.

https://docs.oracle.com/database/121/SQLRF/statements_6012.htm#SQLRF01310

 

서비스를 운영하면서 유용했던 옵션들은

- FAILED_LOGIN_ATTEMPS : 실패 로그인 횟수 제한. 5로 제한할 경우 5번 로그인 실패시 계정 LOCK

- PASSWORD_LOCK_TIME : 패스워드 실패시 Lock 유지 기간 (일)

- PASSWORD_LIFE_TIME : 패스워드 비밀번호 기간(일). 90으로 제한할 경우 90일 후 비밀번호 변경 필요

- PASSWORD_GRACE_TIME : 패스워드 만료 후 암호변경까지 유예 기간 (일)

- PASSWORD_REUSE_TIME : 패스워드 재사용 횟수 제한. 1으로 제한할 경우 한 번 사용했던 비밀번호 사용 금지

- PASSWORD_REUSE_MAX : REUSE_TIME의 기간(일)

  Ex> 180으로 제한하고 REUSE_TIME : 1인 경우, 180일동안 동일한 비밀번호는 한 번만 사용할 수 있음

     (변경시 반드시 다른 비밀번호로 변경 필요)

- PASSWORD_VERIFY_FUNCTION : 패스워드 복잡성 확인 함수 

 

이외에도 계정당 세션 수 제한, 접속 시간 제한, SGA 메모리 크기 등 디테일하게 조정할 수 있지만, 

EDW와 같이 많은 직원이 접속하는 환경이 아니라면 UNLIMITED 옵션으로 유동적으로 유지하고 ,

WAS에서 Connection Pool을 DBMS에서 전체 SGA 크기를 조정하는게 적합해보인다.

 

 

3. 스크립트 예시

-- 1. 프로파일 생성
CREATE PROFILE PROFILE_NAME1 LIMIT
COMPOSITE_LIMIT UNLIMITED 
SESSION_PER_USER UNLIMITED
CPU_PER_SESSION UNLIMITED
CPU_PER_CALL UNLIMITED
LOGICAL_READS_PER_SESSION UNLIMITED
LOGICAL_READS_PER_CALL UNLIMITED
IDLE_TIUME UNLIMITED
PRIVATE_SGA UNLIMITED
FAILED_LOGIN_ATTEMPS 5
PASSWORD_LOCK_TIME 1
PASSWORD_LIFE_TIME 90
PASSWORD_GRACE_TIME 3
PASSWORD_REUSE_TIME 1
PASSWORD_REUSE_MAX 180
PASSWORD_VERIFY_FUNCTION VERIFY_FUNCTION
INACTIVE_ACCOUNT_TIME UNLIMITED
PASSWORD_ROLLOVER_TIME;

-- 2. 프로파일 생성 확인
SELECT *
FROM DBA_PROFILES;

-- 3. 계정에 프로파일 적용
ALTER USER 계정이름 PROFILE PROFILE_NAME1;

--4. 계정에 프로파일 적용 확인
SELECT *
FROM DBA_USERS;

 

 

* 기타 - SQL Profile이랑 계정 Profile은 다르다.

  SQL Profile은 이 글 참고.

https://subbak2.tistory.com/97

 

[Oracle] 튜닝 최후의 수단 PROFILE

튜닝의 끝은 순정이다. 가장 좋은 SQL 튜닝은 튜닝을 하지 않는 것이라고 생각한다. 데이터 모델링이 잘 되어있고 통계정보도 잘 수집되어 별도의 힌트없이 설계자의 의도대로 플랜이 수행되어

subbak2.com

 

 

 

* 참고자료 : 

https://docs.oracle.com/database/121/SQLRF/statements_6012.htm#SQLRF01310

 

CREATE PROFILE

Purpose Use the CREATE PROFILE statement to create a profile, which is a set of limits on database resources. If you assign the profile to a user, then that user cannot exceed these limits.

docs.oracle.com

 

반응형