Describe 패스워드관리 here
SQL> CREATE PROFILE TOM_PASSWD LIMIT
2 PASSWORD_LIFE_TIME 60 -- 60일후 패스워드를 바꿔야 한다.
3 PASSWORD_GRACE_TIME 10 -- 60일이 지난후 경고메세지가 10일동안 보여진다.
4 PASSWORD_REUSE_TIME 1800 -- 같은 패스워드를 1800일 동안 못쓰게 한다.
5 PASSWORD_REUSE_MAX UNLIMITED -- 같은 패스워드를 무제한으로 다시 사용할 수 있다.
6 FAILED_LOGIN_ATTEMPTS 3 -- 3번이상 로그인 실패면 계정이 잠긴다.
7 PASSWORD_LOCK_TIME 1/1440 -- 3번이상 틀려 잠긴 계정이 1분(1/1440일)뒤에 자동으로 풀린다.
8 ;
프로파일이 생성되었습니다.
SQL> CREATE USER TOM IDENTIFIED BY TOM
2 DEFAULT TABLESPACE USERS
3 TEMPORARY TABLESPACE TEMP
4 QUOTA 0 ON SYSTEM
5 QUOTA 50M ON USERS
6 PROFILE TOM_PASSWD;
사용자가 생성되었습니다.
SQL> GRANT CONNECT TO TOM;
권한이 부여되었습니다.
SQL> CONNECT TOM/TON
ERROR:
ORA-01017: 사용자명/암호가 부적합, 로그온할 수 없습니다
경고: 이제는 ORACLE에 연결되어 있지 않습니다.
SQL> CONNECT TOM/TON
ERROR:
ORA-01017: 사용자명/암호가 부적합, 로그온할 수 없습니다
SQL> CONNECT TOM/TON
ERROR:
ORA-01017: 사용자명/암호가 부적합, 로그온할 수 없습니다
SQL> CONNECT TOM/TON
ERROR:
ORA-28000: 계정이 잠금되었습니다
SQL>REM 1분뒤...
SQL> CONNECT TOM/TOM;
연결되었습니다.
SQL>
SQL> REM VERIFY_FUNCTION은 반드시 SYS스키마안에서 호출되어야 한다.
SQL> CONNECT INTERNAL
연결되었습니다.
SQL> REM VERIFY_FUNCTION의 매개변수는 반드시 아래와 같이 3개이여야 한다.
SQL> CREATE OR REPLACE FUNCTION FUNC_TOM_PASSWD
2 (USERNAME IN VARCHAR2,
3 PASSWORD IN VARCHAR2,
4 OLD_PASSWORD IN VARCHAR2
5 )
6 RETURN BOOLEAN IS
7 BEGIN
8 IF(USERNAME = PASSWORD) THEN
9 RAISE_APPLICATION_ERROR(-20001, '패스워드가 사용자명과 동일합니다.');
10 RETURN FALSE;
11 END IF;
12
13 RETURN TRUE;
14 END;
15 /
함수가 생성되었습니다.
SQL> ALTER PROFILE TOM_PASSWD LIMIT
2 PASSWORD_VERIFY_FUNCTION FUNC_TOM_PASSWD;
프로파일이 변경되었습니다.
SQL> CREATE USER TEST IDENTIFIED BY TEST
2 PROFILE TOM_PASSWD;
CREATE USER TEST IDENTIFIED BY TEST
*
1행에 오류:
ORA-28003: 지정된 암호에 대한 암호 검증이 실패했습니다
ORA-20001: 패스워드가 사용자명과 동일합니다.
SQL> CREATE USER TEST IDENTIFIED BY TEST1
2 PROFILE TOM_PASSWD;
사용자가 생성되었습니다.
SQL>