1. 필요성
개인정보를 관리하는 DB의 경우 계정 정책을 통한 데이터 관리가 필요한 경우가 있다.
회사의 개인정보취급 방침에 의한것일 수도 있고
방송통신위원회의 개인정보 취급 가이드라인에 의한 것일수도 있고
https://kcc.go.kr/user.do?mode=view&page=A02030700&dc=K02030500&boardId=1099&cp=1&boardSeq=47488
금융위원회 개인정보보호 가이드라인에 의한 것일수도 있고
개인정보와 상관없이 랜섬웨어나 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
* 참고자료 :
https://docs.oracle.com/database/121/SQLRF/statements_6012.htm#SQLRF01310
'데이터 사이언스 DataScience > Data Base 데이터베이스' 카테고리의 다른 글
[Oracle] DROP TABLE PURGE 시점 확인하기 (0) | 2023.03.23 |
---|---|
[Oracle] 온프레미스에서 AWS 마이그레이션 1. 준비 (0) | 2022.10.06 |
[Oracle] AWR DUMP 백업하기, HTML로 추출하기 (0) | 2022.08.03 |
[Oracle] 테이블스페이스 READ ONLY, READ WRITE (0) | 2022.07.27 |
[Oracle] MGA 이슈 → 19버전은 19.8 이후 버전 사용 권장 (0) | 2022.06.21 |