[오라클]패스워드 정책 변경
ALTER PROFILE "DEFAULT" LIMIT
SESSIONS_PER_USER UNLIMITED
CPU_PER_SESSION UNLIMITED
CPU_PER_CALL UNLIMITED
CONNECT_TIME UNLIMITED
IDLE_TIME UNLIMITED
LOGICAL_READS_PER_SESSION UNLIMITED
LOGICAL_READS_PER_CALL UNLIMITED
COMPOSITE_LIMIT UNLIMITED
PRIVATE_SGA UNLIMITED
FAILED_LOGIN_ATTEMPTS 10
PASSWORD_LIFE_TIME UNLIMITED
PASSWORD_REUSE_TIME UNLIMITED
PASSWORD_REUSE_MAX UNLIMITED
PASSWORD_LOCK_TIME UNLIMITED
PASSWORD_GRACE_TIME UNLIMITED
PASSWORD_VERIFY_FUNCTION NULL;
비밀번호 관리
암호관리란?
더 뛰어난 데이터베이스 보안을 위해서 관리자가 프로파일로 오라클 암호를 관리 제어 할 수 있는 기능을 말합니다.
암호관리의 기능
- 계정 잠금(Accont locking) : 계정잠금 이란 사용자가 지정된 시도 횟수 내에 시스템에 로그인하지 못한 경우 자동적으로 계정을 잠그는 기능을 말합니다.
- 암호의 노화(aging)와 기간 만료(expire) : 암호가 수명을 갖도록 하여 그 기간이 지나면 암호를 변경 하도록 설정하는 기능 입니다.
- 암호의 현재까지의 기록(Password history) : 암호를 검사하여 지정된 시간 동안이나 지정된 횟수 이상 사용되지 않도록 설정 할 수 있습니다.
- 암호의 복잡성 검증(Password complexity verification) : 추측된 암호를 사용하지 못하도록 암호를 충분히 복잡하게 설정 할 수 있는 기능 입니다.
암호관리를 사용하는 방법
- 프로파일을 사용자에게 지정하여 암호관리를 설정 합니다.
- CREATE USER나 ALTER USER 명령을 사용하여 계정을 잠그거나 잠금을 해제하고 기간을 만료 할 수 있습니다.
- 인스턴스의 RESOURCE_LIMIT가 FALSE로 설정되어 있더라도 암호제한은 항상 시행 됩니다.
- 자원 제한 설정과 비슷하게 CREATE나 ALTER USER 명령을 사용하여 암호 설정을 제한하도록 프로파일을 생성하여 사용자에게 지정할 수 있습니다.
- SESSIONS_PER_USER 같은 다른 제한들은 초기화 파라미터나 ALTER SYSTEM 명령으로 자원 제한이 enable되어 있을 때에만 시행되는 반면, 프로파일의 암호 설정은 항상 시행 됩니다.
- 암호 관리가 enable되면 사용자 계정은 CREATE USER나 ALTER USER 명령을 사용하여 잠그거나 잠금을 해제할 수 있습니다.
암호 설정 방법
아래와 같이 프로파일을 생성 하고 그 프로파일을 암호설정을 적용할 유저에게 부여하면 됩니다.
SQL> CREATE PROFILE scott_password
LIMIT FAILED_LOGIN_ATTEMPTS 3 ---> 로그인 실패 횟수
PASSWORD_LIFE_TIME 30 ---> 기간만료일
PASSWORD_REUSE_TIME 30 ---> 암호가 재사용 될 때까지의 날 수
PASSWORD_VERIFY_FUNCTION verify_function ---> 복합성 검사를 수행할 PL/SQL
PASSWORD_GRACE_TIME 5 ; ---> 유예기간
암호 설정 관련 파라미터
Parameter |
설 명 |
FAILED_LOGIN_ATTEMPTS |
계정을 잠그기 전까지 로그인 시도하다 실패한 횟수. |
PASSWORD_LOCK_TIME |
암호가 기간 만료되어 계정이 잠겨진 채로 남아 있었던 날 수 |
PASSWORD_LIFE_TIME |
날 수로 표시한 암호의 수명으로 이 기간이 지나면 기간 만료됨 |
PASSWORD_GRACE_TIME |
암호가 기간 만료된 후 첫번째 성공적인 로그인부터 암호 변경을 할 때까지의 유예기간 |
PASSWORD_REUSE_TIME |
암호가 재사용 될 때까지의 날 수 |
PASSWORD_REUSE_MAX |
암호가 재사용 될 수 있는 최대 회수 |
PASSWORD_VERIFY_FUNCTION |
암호를 할당 하기 전 복합성 검사를 수행할 PL/SQL 함수 |
암호 노화(Aging) 기간 만료
- PASSWORD_LIFE_TIME 파라미터는 패스워드의 수명을 설정 합니다. 이 기간이 지나면 암호를 변경해야 합니다.
- 데이터베이스 관리자는 유예 기간(PASSWORD_GRACE_TIME)을 지정할 수 있습니다. 이 기간은 암호가 기간 만료된 후 데이터베이스에 처음 접속한 때부터 시작 됩니다.
- 유예 기간이 끝날 때까지는 사용자가 매번 접속하려 할 때마다 경고 메시지가 발생 하며, 사용자는 유예 기간 내에 암호를 변경해야 합니다. 암호가 변경되지 않으면 계정은 잠깁니다.
- 암호를 기간 만료된 것으로 명시적으로 설정하면 사용자의 계정 상태는 EXPIRED로 변경됩니다. 이렇게 되면, 사용자가 로그인 할 때 계정은 유예 기간으로 넘어 갑니다.
암호의 현재까지의 기록
- 암호의 현재까지의 기록은 사용자가 지정된 기간 동안 암호를 재사용하지 못하게 합니다. 아래의 한 가지 방법으로 구현할 수 있습니다.
- PASSWORD_REUSE_TIME : 주어진 날 수 동안 암호를 재사용할 수 없도록 지정.
- PASSWORD_REUSE_MAX : 예전에 사용한 암호와 동일한 것을 사용하지 못하도록 시행.
Password Verification Function VERIFY_FUNCTION
- 사용자에게 암호를 할당하기 전에 암호의 유효성을 검증 할 수 있습니다.
- 암호의 최소길이는 네문자 입니다.
- 암호는 사용자 이름과 같아서는 안된다.
- 암호는 최소한 하나의 알파벳,하나의 수자,그리고 하나의 특수 문자를 가져야한다.
- 암호는 예전에 사용했던 암호와 최소한 세문자는 달라야한다.
- utlpwdmg.sql 스크립트에 의해 VERIFY_FUNCTION이라는 디폴트 PL/SQL 함수 형태로 제공되며 반드시 SYS 스키마에서 실행되어야 합니다.
- 디폴트 profile의 PASSWORD_VERIFY_FUNCTION 기능을 사용하지 않으려면 아래의 명령어를 실행하면 됩니다.
SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_VERIFY_FUNCTION NULL;
계정 잠금과 암호 제어(Controlling Account Lock and Password)
ALTER USER 명령을 사용하여 암호를 변경하고 계정을 잠글 수 있습니다. 이와 같은 작업이 필요한 경우는 다음과 같습니다.
- - 사용자가 암호를 잃어버려서 암호를 재설정하고자 할 때
- - 시스템에 의해 잠겨진 사용자 계정을 풀 때
- - 계정을 명시적으로 잠글 때
- - 수동으로 암호를 만료되게 할 때, 사용자 암호를 재설정할 때 유용합니다.
암호 만료후 재설정 문법
ALTER USER user
[ IDENTIFIED {BY password | EXTERNALLY } ]
[ PASSWORD EXPIRE ]
[ ACCOUNT { LOCK | UNLOCK } ] ;
암호 만료후 재설정 예제
SQL> ALTER USER scott
IDENTIFIED BY puhaha
PASSWORD EXPIRE ;
사용자가 로그인한 상태라면 암호 변경, 만료, 잠금은 현재의 세션에는 영향을 주지 않습니다. 사용자 계정이 잠겨져 있는데 접속하려 하면 아래와 같은 메세지가 출력 됩니다
ERROR:
ORA-28000: the account is locked
Warning: You are no longer connected to ORACL
'01.오라클 > 001.DB 관리' 카테고리의 다른 글
[오라클]테이블스페이스 생성 및 관리 (0) | 2012.12.19 |
---|---|
[오라클]DB 기본 관리 쿼리 (0) | 2012.12.19 |
[오라클]Redo 로그파일 그룹 추가 및 삭제 (0) | 2012.12.19 |
[오라클]불필요 계정 삭제 (0) | 2012.12.19 |
[오라클]DB실시간 모니터링 문장 (0) | 2012.12.19 |