11g 부터 user가 기본으로 180일 제한이 걸려있다..
오라클형들은 자꾸 기본 보안을 높이넹 ~_~
일단 dba_profiles 테이블을 보자면 다음과 같이 되어있음을 확인할수 있다.
다음과 같은 명령으로 lock혹은 expired 되어있는 user와 profile을 확인한다
Lock 상태는 사라지고 Expired 상태로 된 것을 확인
1
2
3
4
5
6
7 |
10:14:24 SYS@RAC1> desc dba_profiles; Name Null ? Type ----------------------------------------------------- -------- ------------------------------------ PROFILE NOT NULL VARCHAR2(30) RESOURCE_NAME NOT NULL VARCHAR2(32) RESOURCE_TYPE VARCHAR2(8) LIMIT VARCHAR2(40)
|
1
2
3
4
5
6
7
8
9
10 |
15:04:19 SYS@RAC1> select USERNAME, ACCOUNT_STATUS,PROFILE 15:06:44 2 from dba_users; USERNAME ACCOUNT_STATUS PROFILE ------------------------------ -------------------------------- ------------------------------ BI OPEN DEFAULT SCOTT OPEN DEFAULT OGGT OPEN DEFAULT |
Lock 되어있는 유저는 다음과 같은 명령으로 해당 사용자를 unlock 할수 있다.
1
2
3
4
5
6
7
8 |
10:49:40 SYS@RAC1> alter user bi account unlock; User altered. Elapsed: 00:00:00.28 11:17:00 SYS@RAC1> select USERNAME, ACCOUNT_STATUS,PROFILE from dba_users where USERNAME= 'BI' ; USERNAME ACCOUNT_STATUS PROFILE ------------------------- -------------------------------- ------------------------------ BI EXPIRED DEFAULT 1 row selected. |
1
2
3
4
5
6
7
8
9
10
11
12 |
13:46:48 SYS@RAC1> select name , password from user $ where name = 'BI' ; NAME PASSWORD ------------------------------ ------------------------------ BI EB32A21961929D0C 해당 명령어로 user 의 password hash값 확인 13:48:17 SYS@RAC1> alter user bi identified by values 'EB32A21961929D0C' ; User altered. 13:48:51 SYS@RAC1> select USERNAME, ACCOUNT_STATUS,PROFILE from dba_users where USERNAME= 'BI' ; USERNAME ACCOUNT_STATUS PROFILE ----------------------- -------------------------------- ------------------------------ BI OPEN DEFAULT 1 row selected. |
계정이 Open 상태로 된 것을 확인한다.
이렇게만 하면 일시적으로 expired 되거나 unlock된 계정을 풀수는 있지만...
장기간 운영해하는 입장에서는 여간 귀찮은게 아니다...
default profile을 다음과 같이 수정해서 귀차니즘에서 탈피~!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 |
10:14:12 SYS@RAC1> col limit for a20 select * from dba_profiles where resource_type= 'PASSWORD' ; PROFILE RESOURCE_NAME RESOURCE LIMIT ------------------------------ -------------------------------- -------- -------------------- MONITORING_PROFILE FAILED_LOGIN_ATTEMPTS PASSWORD UNLIMITED DEFAULT FAILED_LOGIN_ATTEMPTS PASSWORD 10 MONITORING_PROFILE PASSWORD_LIFE_TIME PASSWORD DEFAULT DEFAULT PASSWORD_LIFE_TIME PASSWORD 180 MONITORING_PROFILE PASSWORD_REUSE_TIME PASSWORD DEFAULT DEFAULT PASSWORD_REUSE_TIME PASSWORD UNLIMITED MONITORING_PROFILE PASSWORD_REUSE_MAX PASSWORD DEFAULT DEFAULT PASSWORD_REUSE_MAX PASSWORD UNLIMITED MONITORING_PROFILE PASSWORD_VERIFY_FUNCTION PASSWORD DEFAULT DEFAULT PASSWORD_VERIFY_FUNCTION PASSWORD NULL MONITORING_PROFILE PASSWORD_LOCK_TIME PASSWORD DEFAULT DEFAULT PASSWORD_LOCK_TIME PASSWORD 1 MONITORING_PROFILE PASSWORD_GRACE_TIME PASSWORD DEFAULT DEFAULT PASSWORD_GRACE_TIME PASSWORD 7 SQL> alter profile default limit FAILED_LOGIN_ATTEMPTS unlimited PASSWORD_LOCK_TIME unlimited PASSWORD_GRACE_TIME unlimited PASSWORD_LIFE_TIME unlimited; |
패스워드 제한설정
PASSWORD history : 이전 암호를 기억해 놓았다가 다음에 변경시 동일한 암호사용을 금지함 password_reuse_time : 동일한 password를 적용한 기간동안 사용금지
password_reuse_max : 입력된 value값만큼만 사용가능한 횟수를 제한 ex: 3이라고 입력하면 3번만 사용가능 password_life_time : password 생명주기 ex : 30 -> 30일마다 변경해야함
password_grace_time : password 변경 만료 알림을 value일 전부터 알림
failed_login_attempts :password 입력실패시 재시도 가능횟수 최종 실패시 계정 lock걸림
password_lock_time : lock걸렸을때 value값만큼 잠겨있음 1일단위임 1/24는 1시간 1/1440은 1분
password complexity verification(패스워드 복잡성)password설정시 제약조건
원본 링크