PASSWORD_VERIFY_FUNCTION
사용자에게 새로운 암호를 할당하기 전에 암호의 타당성을 인증하는 PL/SQL 함수를 사용할 수 있다.
오라클 서버는 기본 함수를 제공하며 데이터베이스 관리자가 PL/SQL 함수를 만들 수 있다.
- 파라미터 : PASSWORD_VERIFY_FUNCTION
- PASSWORD_VERIFY_FUNCTION 설정 방법
사용자 암호를 설정하는 과정에서 단순한 문자나 숫자 등으로 암호를 설정하지 못하도록
암호를 검증하는 방법이 제공되는데,
이는 $ORACLE_HOME/rdbms/admin/utlpwdmg.sql 스크립트이다.
이 스크립트를 실행하면 VERIFY_FUNCTION 함수가 생성되고 사용자가 암호를 4자(버전에 따라 8자) 이하로
설정하거나 특정 패턴을 사용하게 설정하거나 사용자 ID와 암호를 동일 값으로 설정하는 경우에 에러 메시지를 표시하고
암호를 생성하지 못하도록 한다.
- VERIFY_FUNCTION_11G 함수 생성(LINUX/UNIX)
SQL> @$ORACLE_HOME/rdbms/admin/utlpwdmg.sql
- VERIFY_FUNCTION_11G 함수 생성(NT)
SQL> @"D:\app\Oracle\product\11.2.0\dbhome_1\RDBMS\ADMIN\utlpwdmg.sql"
※ utlpwdmg.sql 함수 생성 SQL을 수행시 DEFAULT profile 이 기본값으로 변경 되므로
VERIFYT_FUNCTION 을 사용하시려면 함수 생성 SQL을 수행 한뒤에 PROFILE을 변경 하거나
PROFILE 이 설정 되어있는 대로 사용 하시려면 utlpwdmg.sql 내용 중 사용기간 관련된 파라미터를 수정해야 한다.
utlpwdmg.sql 내 해당부분 수정하거나 주석처리 필요
ALTER PROFILE DEFAULT LIMIT
PASSWORD_LIFE_TIME 180
PASSWORD_GRACE_TIME 7
PASSWORD_REUSE_TIME UNLIMITED
PASSWORD_REUSE_MAX UNLIMITED
FAILED_LOGIN_ATTEMPTS 10
PASSWORD_LOCK_TIME 1
PASSWORD_VERIFY_FUNCTION verify_function_11G;
10g는 기본이 복잡도가 4자 11g는 8자 입니다.
10g에서 복잡도를 8자로 하려면 utlpwdmg.sql 쿼리 안에서 내용을 변경 해줘야 합니다.
utlpwdmg.sql 복잡도 설정 방법
--10g-------------------------------------------------------------------------------------------------------------------
-- Check for the minimum length of the password
IF length(password) < 4 THEN -- 해당 부분 수정으로 자리수 복잡도 설정 가능(4자리 설정)
raise_application_error(-20001, 'Password length less than 4');
END IF;
------------------------------------------------------------------------------------------------------------------------
utlpwdmg.sql
--11g-------------------------------------------------------------------------------------------------------------------
-- Check for the minimum length of the password
IF length(password) < 8 THEN -- 해당 부분 수정으로 자리수 복잡도 설정 가능(8자리 설정)
raise_application_error(-20001, 'Password length less than 8');
END IF;
------------------------------------------------------------------------------------------------------------------------
- VERIFY_FUNCTION 설정
SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_VERIFY_FUNCTION verify_function; -- 10g
SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_VERIFY_FUNCTION verify_function_11G; -- 11g
- VERIFY_FUNCTION 사용 안하게 설정(원복)
SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_VERIFY_FUNCTION NULL;
- VERIFY_FUNCTION 설정 확인 방법
SQL> SELECT * FROM DBA_PROFILES WHERE RESOURCE_NAME='PASSWORD_VERIFY_FUNCTION ';
- FAILED_LOGIN_ATTEMPTS : 로그인 실패 가능 횟수
- PASSWORD_LOCK_TIME : 암호가 사용기간 만료되어 계정이 잠겨진 채로 남아 있었던 일 수 (단위:일)
- PASSWORD_LIFE_TIME : 암호의 만료 기간을 일 수로 나타냄 (단위:일)
- PASSWORD_GRACE_TIME : 암호의 사용기간이 만료된 후 첫 번째 성공적인 로그인부터 암호변경을 할 때까지의 유예기간 (단위:일)
- PASSWORD_REUSE_TIME : 이전 암호가 재사용 가능할 때까지의 일 수 (단위:일)
- PASSWORD_REUSE_MAX : 이전 암호가 재사용 가능한 최대 횟수
- PASSWORD_VERIFY_FUNCTION : 암호를 할당하기 전 복잡성 검사를 수행할 PL/SQL 함수
'oracle' 카테고리의 다른 글
[ORACLE] ORA-600 [kkdlcob-objn-exists] [1087263] (0) | 2024.06.11 |
---|---|
[ORACLE] HINT 정리 (0) | 2024.06.10 |
[ORACLE] 대소문자 구분 없이 조건 걸기 (0) | 2024.06.05 |
[ORACLE] CLOB GROUP BY 사용하기 (0) | 2024.06.05 |
[ORACLE] query 중 특정 문자 count (0) | 2024.06.04 |