블로그 이미지
redkite

카테고리

분류 전체보기 (291)
00.SI프로젝트 산출물 (0)
00.센터 운영 문서 (0)
01.DBMS ============.. (0)
01.오라클 (117)
01.MS-SQL (15)
01.MySQL (30)
01.PostgreSql (0)
01.DB튜닝 (28)
====================.. (0)
02.SERVER ==========.. (0)
02.서버-공통 (11)
02.서버-Linux (58)
02.서버-Unix (12)
02.서버-Windows (2)
====================.. (0)
03.APPLICATION =====.. (11)
====================.. (0)
04.ETC =============.. (0)
04.보안 (5)
====================.. (0)
05.개인자료 (1)
06.캠핑관련 (0)
07.OA관련 (1)
Total
Today
Yesterday

달력

« » 2024.5
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

공지사항

최근에 올라온 글

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
[계정잠금]

계정을 잠그기 전까지 로그인 시도하다 실패한 횟수.

오라클 서버는 FAILED_LOGIN_ATTEMPTS 값에 도달하면 자동적으로 계정을 잠근다.

계정은 지정된 시간(PASSWORD_LOCK_TIME)이 지난 후 자동적으로 잠금이 해제되거나 데이터베이스 관리자가 ALTER USER 명령으로 잠금을 해제해야 한다.

데이터베이스 계정은 ALTER USER 명령을 사용하여 명시적으로 잠글수도 있는데 이렇게 하면 계정은 자동적으로 잠금 해제되지 않는다

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

 

Posted by redkite
, |

최근에 달린 댓글

최근에 받은 트랙백

글 보관함