본문 바로가기

오라클/오라클 실무

Dba_profile

select * from dba_profiles

where RESOURCE_TYPE='PASSWORD';

 

CREATE PROFILE app_user2 LIMIT

   FAILED_LOGIN_ATTEMPTS 5

   PASSWORD_LIFE_TIME 60

   PASSWORD_REUSE_TIME 60

   PASSWORD_REUSE_MAX 5

   PASSWORD_VERIFY_FUNCTION verify_function

   PASSWORD_LOCK_TIME 1/720

   PASSWORD_GRACE_TIME 10;

  

  

  

  

  

ALTER PROFILE DEFAULT limit PASSWORD_GRACE_TIME UNLIMITED ;

ALTER PROFILE DEFAULT limit FAILED_LOGIN_ATTEMPTS UNLIMITED ;

ALTER PROFILE DEFAULT limit PASSWORD_LIFE_TIME UNLIMITED ;

ALTER PROFILE DEFAULT limit PASSWORD_LOCK_TIME UNLIMITED ;

 

 

 

ALTER PROFILE app_user2 limit FAILED_LOGIN_ATTEMPTS 2 ;

ALTER PROFILE app_user2 limit PASSWORD_LIFE_TIME 1/1440;

ALTER PROFILE app_user2 limit PASSWORD_LOCK_TIME 1;

ALTER PROFILE app_user2 limit PASSWORD_GRACE_TIME 1/24;

 

ALTER PROFILE app_user2 limit PASSWORD_REUSE_TIME UNLIMITED ;

ALTER PROFILE app_user2 limit PASSWORD_REUSE_MAX UNLIMITED ;

 

alter user scott2 identified by "password1$";

alter user scott2 account unlock;

 

 

SELECT * FROM dba_profiles where PROFILE='APP_USER2' and RESOURCE_TYPE='PASSWORD'  ;

SELECT * FROM dba_profiles where PROFILE='DEFAULT' and RESOURCE_TYPE='PASSWORD' ;

 

/*

공통사항

 

 설정값이 시간으로 되어있는 RESOURCE는 단위가 일(하루) 이다. 

 (PASSWORD_LIFE_TIME 1 로 할 시 설정 값은 하루가 된다.)

 이때 설정값에 분수를 넣으면 시간단위, ,초 단위로 설정할 수 있다.

 (PASSWORD_LIFE_TIME 1/1440   할 시 설정된 값은 1분이다. )

 (PASSWORD_LIFE_TIME 1/86400 로 할 시 설정된 값은 1초이다. )

 

------------------------------------------------------------------------------------------------------------------------------------------

FAILED_LOGIN_ATTEMPTS

: 로그인을 실패했을 경우에 대한 제한 횟수

  비밀번호를 지정된 횟수만큼 틀리면 계정이 잠긴다.

 

DEFAULT값은  10()

------------------------------------------------------------------------------------------------------------------------------------------

PASSWORD_LIFE_TIME

: 암호 사용기간설정

암호를 설정하고, 사용기한이 지나면 경고가 뜬다.

 

ERROR:

ORA-28002: the password will expire within 10 days

10일뒤에 암호가 만료됩니다.

 

사용기한이후 비밀번호를 변경하라는 경고가 뜨고 무시 할경우

 

암호가 만료된다.

암호가 만료되면 2가지 해결책이 있다.

-만료된 비밀번호 다른 비밀번호로 변경.

-비번 만료기한을 무제한(unlimited)으로 바꾼뒤 계정의 락을 헤제한다.

 

 

DEFAULT값은 180()

------------------------------------------------------------------------------------------------------------------------------------------

 

PASSWORD_REUSE_TIME

: 사용했던 암호를 다시 사용 할 수있게되는 기간(이 기간동안 암호를 재사용할 수 없다.)

DEFAULT값은 UNLIMITED(제한없음)

 

PASSWORD_REUSE_MAX

: 현재 암호를 재사용하기 전에 필요한 암호 변경 횟수를 지정(이 횟수를 넘겨서 변경하지 않는 이상 암호는 재사용 할 수 없다.)

DEFAULT값은 UNLIMITED(제한없음)

 

 password_reuse_time password_reuse_max는 둘다 정수로 설정되어야 제대로 작동한다.

 

 예를 들어, PASSWORD_REUSE_TIME 30으로 지정하고 PASSWORD_REUSE_MAX 10으로 지정하는 경우,

 비밀번호가 이미 10번 변경된 경우 사용자는 30일 후에 비밀번호를 재사용할 수 있다.

 

 만약 둘중 하나라도 값이 unlimited이면 사용자는 암호를 다시 사용 할 수 없다.

 

 둘다 unlimited이면 database는 이것을 무시한다.

 

------------------------------------------------------------------------------------------------------------------------------------------

PASSWORD_VERIFY_FUNCTION

: 암호 복잡성 검사 설정

암호에 생성규칙(특수문자 의무적으로 사용, 문자수 제한, 숫자 의무적 사용)

지정 할 수 있습니다.

 

사용자가 함수로 직접 생성 할 수도 있고, 오라클에서 제공하는 함수를 지정 할 수도 있다.

 

 

sql문으로 function을 조회할시 oracle이 기본적으로 제공하는 함수를 확인 할 수 있다.

 

SELECT distinct NAME

FROM   USER_SOURCE

WHERE TYPE = 'FUNCTION'

and NAME like '%VERIFY_FUNCTION%'

ORDER BY NAME;

--기본제공 함수 확인

 

SELECT *

FROM   USER_SOURCE

WHERE TYPE = 'FUNCTION'

and NAME like '%VERIFY_FUNCTION%'

ORDER BY NAME,line;

--함수 source code 확인

 

 

ORA12C_STIG_VERIFY_FUNCTION

ORA12C_STRONG_VERIFY_FUNCTION

ORA12C_VERIFY_FUNCTION

VERIFY_FUNCTION

VERIFY_FUNCTION_11G

등이 기본적으로 제공됩니다.

 

DEFAULT값은 UNLIMITED(제한없음)

 

------------------------------------------------------------------------------------------------------------------------------------------

PASSWORD_LOCK_TIME

: 암호를 지정된 횟수 만큼 틀렸을시 계정이 잠기는 기간

 

1로 설정할 시 사용자가 FAILED_LOGIN_ATTEMPTS 에서 지정한 로그인 횟수를 넘겨 로그인을 시도하면 계정이 하루동안 잠긴다.

DEFAULT값은 1()

------------------------------------------------------------------------------------------------------------------------------------------

PASSWORD_GRACE_TIME

: 암호 만료 경고 기간

암호 사용기한이 만료 되면, 경고를 일정 기간동안 띄울수 있다.

ERROR:

ORA-28002: the password will expire within 1 days

ERROR:

ORA-28002: the password will expire within 10 days

ERROR:

ORA-28002: the password will expire within 0 days

 

경고기한을 마음대로 설정할 수 있다. 허나,

기한을 시간단위로 설정할 수 있지만 경고에는 날짜단위로만 경고가 뜬다.

 

 

 

DEFAULT값은 7()

 

------------------------------------------------------------------------------------------------------------------------------------------

INACTIVE_ACCOUNT_TIME

: 지정된 일 수 후에 사용자 계정을 자동으로 잠금

 

 

DEFAULT값은 UNLIMITED

------------------------------------------------------------------------------------------------------------------------------------------

 

PASSWORD_ROLLOVER_TIME

:이전암호와 새암호 혼용가능한 기한

 

지정 할 수 있는 최소값은 1/24(1시간) 이다.

암호가 변경되어도 이 기간동안은 이전함호, 새암호 둘다 사용가능하다.

기간이 지나면 새암호만 사용가능

 

------------------------------------------------------------------------------------------------------------------------------------------

 

ORACLE DOCS 19c /create profile

https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/CREATE-PROFILE.html#GUID-ABC7AE4D-64A8-4EA9-857D-BEF7300B64C3

 

ORACLE DOCS 10g /create profile

https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_6010.htm

*/

'오라클 > 오라클 실무' 카테고리의 다른 글

RMAN 백업셋팅  (0) 2022.08.18
RAC 명령어  (0) 2022.08.12
Impdp 가 실행 되었을 때 처리 순서  (0) 2022.08.01
AWR(Automatic Workload Repository)  (0) 2022.07.15
archive log  (0) 2022.07.05