오라클은 계정에 대해 패스워드 유효기간을 정해놓습니다.
보통 기본이 180일로 설정되어 있으며, 이 기간이 지나기 까지 패스워드 변경이 없으면 해당 계정에 로그인 되지 않습니다.
해당 계정에 관한 정보는, DBA_USERS 라는 스키마에서 보실 수 있습니다.
간단하게 TEST1이라는 계정하나 만들고 살펴보겠습니다.
1 2 3 | select username, account_status, lock_date, expiry_date, created, profile from dba_users where username= 'TEST1' ; |
username : ID
account_status : 계정 상태
lock_date : 계정 잠긴 날짜
expiry_date : 계정 유효 날짜
created : 계정 생성 날짜
profile : 사용하는 프로파일 명
제가 이글을 작성하는 시점은 2016년 7월 8일 입니다.
그리고 그보다 180일 뒤인, 2017년 1월 4일까지 계정이 유효함을 보실 수 있습니다 (expiry_date)
유효기간 근처에 다가가면, 로그인할 떄 마다 경고창을 띄워줍니다. 계정 유효기간 얼마 안남았다고요.
그러다가 유효기간이 다되면
ORA-28001: the password has expired
ORA-28001: 비밀번호가 만기되었습니다
와 같은 오류가 발생합니다.
만료되자 마자 저렇게 오류가 발생하는건 아니고요, 패스워드 만료 기간 지나고 첫 로그인 시 유예기간을 줍니다.
기본은 7일입니다.
패스워드 유효기간이 7월 1일 까지였는데, 오늘 7월 8일에 로그인했을 경우
날짜가 지났으니 오늘 로그인한 날짜에서 유예기간을 더한, 7월 15일로 expiry_date가 변경됩니다.
유예기간까지 끝나고 나면 위와 같이 에러가 발생하며 로그인이 되지 않습니다.
이럴경우 간단히 패스워드를 변경해주면 패스워드 변경날짜 + 기본날짜(180)이 더해진 날짜가 expiry_date로 설정됩니다.
alter user 유저명 identified by 패스워드;
위와 같이 패스워드 변경 가능합니다.
프로필 변경
계정 생성하면 지정되는 유효기간 180일, 유예기간 7일..
기본값이라고 설명드렸었는데, 이것들도 수정 가능합니다.
처음에 DBA_USERS에서 유저정보를 조회할 때, profile이라는 컬럼도 조회했었습니다. 값은 DEFAULT가 나왔었죠.
즉, DEFAULT라는 이름을 가진 profile을 사용하겠다는 의미입니다.
profile에 대한 정보는 DBA_PROFILE에서 확인하실 수 있습니다.
DBA_PROFILE에서 패스워드 관련된 값들을 한번 보시죠.
1 2 3 | select * from dba_profiles where resource_type= 'PASSWORD' ; |
FAILED_LOGIN_ATTEMPTS : 로그인 실패 가능 횟수
PASSWORD_LOCK_TIME : 암호가 사용기간 만료되어 계정이 잠겨진 채로 남아 있었던 일 수 (단위:일)
PASSWORD_LIFE_TIME : 패스워드 만료 기간(단위:일)
PASSWORD_GRACE_TIME : 패스워드 유예기간 (단위:일)
PASSWORD_REUSE_TIME : 이전 패스워드 재사용 가능 기간 (단위:일)
PASSWORD_REUSE_MAX : 이전 패스워드 재사용 가능 최대 횟수
PASSWORD_VERIFY_FUNCTION : 패스워드를 할당하기 전 복잡성 검사를 수행할 PL/SQL 함수
프로필 변경은 아래와 같이 가능합니다.
1 2 3 4 5 6 7 | ALTER PROFILE default LIMIT FAILED_LOGIN_ATTEMPTS 5 PASSWORD_LIFE_TIME UNLIMITED PASSWORD_GRACE_TIME 10; |
UNLIMITED로 무제한으로 설정해줄 수도 있습니다.
감사합니다~
출처: http://joont.tistory.com/153 [Toward the Developer]
'개발 > SQL' 카테고리의 다른 글
mariadb 데이터베이스 생성 (0) | 2021.06.10 |
---|---|
MariaDB 날짜 함수 (0) | 2019.01.25 |
DB관련 유용한 사이트 링크 (0) | 2018.11.29 |
[Oracle] 테이블 권한주기 (0) | 2018.06.12 |
[펌] SQL 세로를 가로로 조회(ORACLE) (0) | 2018.04.20 |