본문 바로가기
1. IT Life/[데이터베이스] ORACLE

[ORACLE] 패스워드 정책 설정(VERIFY_FUNCTION)

by hapajay 2020. 8. 17.
728x90
반응형

안녕하세요~~~ 하파제이 입니다😊

 

시간이 가면 갈수록 개인정보와 같은 「보안」 에 대해서 중요도가 높아지고 있는데요~! 

그 중에서도 패스워드!!!

 

보통 DB 관리자가 DB에서 사용하는 User에 패스워드 정책을 만들고

만든 정책들을 각 User에 맞게 적용시키며,

정기적으로 패스워드를 변경해주는데요~

 

 

따!

 

라!

 

서!

 

 

이번!! 시간에는 오라클 DB 패스워드 정책 설정에 대해 알아보고자 합니다!

 

오라클 DB에서 기본적으로 제공하는 PASSWORD_VERIFY_FUNCTION 함수

이용할거라 어려움은 없습니다 ! (ORACLE 11g 기준!😄)

 

PASSWORD_VERIFY_FUNCTION 함수는 패스워드 규칙 조건을 만드는 함수

라고 생각하시면 됩니다!

 

스크립트 경로는! $ORACLE_HOME/rdbms/admin/utlpwdmg.sql

이쪽에 있고, vi mode로 열어서 한 번 확인해보자구요!😎

 

아참 vi mode 유용한 명령어는 아래 링크에 있으니 참고하세용😂😂

https://hapajay.tistory.com/2

 

[Linux] vi mode 유용 명령어

안녕하세요~~~ 하파제이 입니다😊 첫 포스팅으로..! Linux 운영체제에서 많이 사용하는 vi mode에 대해서 알아보는 시간을 가져보도록 하겠습니다! Unix에서도 사용할 수 있으니 참고하세요오~~😋���

hapajay.tistory.com

 


utlpwdmg.sql 스크립트 구성은 3단계로 아래와 같습니다!

  • 1단계 : Function 생성
  • 2단계 : 패스워드 정책 설정
  • 3단계 : Function을 Profile에 적용

3단계 적용을 마치고 Profile을 User에 적용 시키면 됩니다!!

 

 

1. 패스워드 정책 설정 스크립트 복사본 만들기

원본 스크립트는 그대로 두고 복사본을 하나 만들어봅시다!

(원본 파일은 건드리지 않는 것을 습관화 하는게 중요해요😊)

# cd $ORACLE_HOME/rdbms/admin

# cp -p utlpwdmg.sql test_utlpwdmg.sql

 

 

2. Function 명 변경 (F_HAPAJAY_PWD_SET)

# vi test_utlpwdmg.sql

46 CREATE OR REPLACE FUNCTION verify_function_11G  -- 함수명 변경

 

46 라인을 보면 verify_function_11G 라고 되어 있는데 이건 Default 설정이기 때문에

Function 명을 바꿔줍시다! (추후 패스워드 복잡도 설정을 위함)

 

46 CREATE OR REPLACE FUNCTION F_HAPAJAY_PWD_SET

 

 

3. test_utlpwdmg.sql 파일 수정

# vi test_utlpwdmg.sql

206 -- Below is the older version of the script

vi mode로 접근해서 206 라인 밑으로는 old 버전 스크립트라서 불필요!

206 라인 밑으로 전부 delete 후 저장~~!

 

이제 정책 적용을 위해 내용을 수정할 것이니!!

순서대로 그대로오 ~ 따라오시면 됩니다!

 

 

4. 패스워드 정책 설정 (5가지)

4-1. 최소 패스워드 글자 수 변경 (최소 8글자, Default 값)

최소 패스워드 글자 수를 설정!

 69    -- Check for the minimum length of the password
 70    IF length(password) < 8 THEN   -- 최소 패스워드 글자 수  변경
 71       raise_application_error(-20001, 'Password length less than 8');  -- 설명도 변경
 72    END IF;
 73

 

 

4-2. user와 같거나 비슷한 패스워드는 금지 (user명 reverse 포함)

75 ~ 105줄 변경 없음

 

 

4-3. 간단한 패스워드 설정 방지

간단한 패스워드 설정 방지!!

110    IF NLS_LOWER(password) IN ('welcome1', 'database1', 'account1', 'user1234', 'password1', 'oracle123    ',
                                               'computer1', 'abcdefg1', 'change_on_install') THEN
                                                    -- 간단한 것 같은 패스워드는 추가 시켜줄 것 
 

111       raise_application_error(-20006, 'Password too simple');
112    END IF;

 

 

4-4. 패스워드 최소 숫자, 문자 1개씩 포함 설정

123 ~ 153줄 변경 없음

 

 

4-5. 패스워드 변경시 이전 패스워드와 최소 3글자 다르게 설정

156 ~ 185줄 변경 없음

 

 

5. F_HAPAJAY_PWD_SET 함수를 PRF_HAPAJAY 프로파일에 적용
187 GRANT EXECUTE ON F_HAPAJAY_PWD_SET TO PUBLIC; -- 변경

195 ALTER PROFILE PRF_HAPAJAY LIMIT -- 변경 

196 PASSWORD_LIFE_TIME 180 
197 PASSWORD_GRACE_TIME 7
198 PASSWORD_REUSE_TIME UNLIMITED
199 PASSWORD_REUSE_MAX UNLIMITED
200 FAILED_LOGIN_ATTEMPTS 10
201 PASSWORD_LOCK_TIME 1
202 PASSWORD_VERIFY_FUNCTION F_HAPAJAY_PWD_SET;   -- 변경

각 라인 설명

196 PASSWORD_LIFE_TIME : 패스워드 만료일 (DAY 기준)

197 PASSWORD_GRACE_TIME : 패스워드 만료가 되고 로그인할 때

                                          패스워드 변경할 때까지의 유예 기간 (DAY 기준)

198 PASSWORD_REUSE_TIME : 패스워드가 재사용 될 때까지의 일 수 (DAY 기준)

199 PASSWORD_REUSE_MAX : 패스워드 재사용 될 수 있는 최대 횟수 

200 FAILED_LOGIN_ATTEMPTS : 잘못된 로그인 시도 횟수

201 PASSWORD_LOCK_TIME : 패스워드 만료된 후 LOCK 된 일 수 (DAY 기준)

202 PASSWORD_VERIFY_FUNCTION : 패스워드 복잡도(최소길이, 숫자&문자 결합, 패스워드 history)

 

 

참조 :

http://www.gurubee.net/lecture/1725

https://positivemh.tistory.com/398

 

 

패스워드 정책 설정은 여기까지 마치겠습니다!😎

 

도움이 되셨다면 "♡ 공감" →  " 공감 버튼 클릭 클릭👍👍👍~!  

감사합니다! 😊

반응형

댓글