# 프로파일
프로파일은 다음 암호 및 자원 제한을 명명한 집합.
? 암호 만기일 기능 및 암호 만기
? 암호 기록
? 암호 복잡성 확인
? 계정 잠금
? CPU 시간
? I/O(입출력) 작업
? 휴지 시간
? 연결 시간
? 메모리 공간(공유 서버만을 위한 전용 SQL 영역)
? 동시 세션
프로파일은 데이터베이스 생성시 default 프로파일을 자동으로 생성.
* 프로파일 할당은 현재 세션에 영향을 주지 않음.
확인
? DBA_USERS
? DBA_PROFILES
# 프로파일 생성
CREATE PROFILE grace_5 LIMIT
FAILED_LOGIN_ATTEMPTS 3
PASSWORD_LOCK_TIME UNLIMITED
PASSWORD_LIFE_TIME 30
PASSWORD_REUSE_TIME 30
PASSWORD_GRACE_TIME 5;
FAILED_LOGIN_ATTEMPTS : 로그인 시도를 실패할 수 있는 횟수
PASSWORD_LIFE_TIME : 유효기간 만료후 락
PASSWORD_REUSE_TIME : 암호 재사용 일 수
PASSWORD_REUSE_MAX : PASSWORD_REUSE_TIME 정수값 입력시 UNLIMITED
PASSWORD_LOCK_TIME : 계정 잠그는 일 수
PASSWORD_GRACE_TIME : 유예기간
PASSWORD_VERIFY_FUNCTION : 복잡성 환인 함수를 CREATE PROFILE문에 인수로 전달
# 프로파일 변경
ALTER PROFILE default LIMIT
FAILED_LOGIN_ATTEMPTS 3
PASSWORD_LIFE_TIME 60
PASSWORD_GRACE_TIME 10;
# 프로파일 삭제
DROP PROFILE 프로파일명 CASCADE
* default 프로파일은 삭제할 수 없음
* 현재 세션에는 적용 되지 않고 새롭게 연결되는 세션에만 적용됨
#자원관리
자원을 제한을 하기 위해 아래의 값을 true 변경 필요
ALTER SYSTEM SET RESOURCE_LIMIT=TRUE;
연습문제
1 lab14_01.sql 스크립트를 실행하여 Jeff 사용자를 생성하십시오.
@$ORACLE_HOME/rdbms/admin/utlpwdmg.sql 스크립트를 실행하여 암호
관리를 활성화하십시오.
2 Jeff 사용자의 암호를 Jeff로 변경해 보십시오. 결과는?
alter user jeff identified by jeff
3. 암호 관리 형식에 따라 Jeff의 암호를 변경해 보십시오
힌트:암호에는 적어도하나의 숫자, 문자 및 구두점이 포함되어야 합니다.
alter user jeff identified by j2f$;
4 DEFAULT 프로파일을 변경하여 DEFAULT 프로파일을 할당받은 사용자에게 다음
사항이 적용되었는지 확인하십시오.
- 로그인을 두 번 시도하면 계정이 잠겨야 합니다.
- 암호는 30일 후에 만료되어야 합니다.
- 동일한 암호가 단 1분 동안이라도 재사용되지 않도록 하십시오.
- 계정에는 만료되는 암호의 변경을 위해서 5일의 유예 기간을 두어야 합니
다.
- 주어진 요구 사항이 구현되었는지 확인하십시오.
힌트:
ALTER PROFILE 명령을 사용하여 기본 프로파일 제한을 변경합니다.
DBA_PROFILES 데이터 딕셔너리 뷰를 질의하여 결과를 확인합니다.
alter profile default limit
failed_login_attempts 1
password_life_time 30
password_reuse_time 1/1440
password_grace_time 5
select resource_name , limit
from dba_profiles
where resource_type='PASSWORD'
and profile='DEFAULT';
RESOURCE_NAME LIMIT
-------------------------------- ----------------------------------------
FAILED_LOGIN_ATTEMPTS 1
PASSWORD_LIFE_TIME 30
PASSWORD_REUSE_TIME .0006
PASSWORD_REUSE_MAX UNLIMITED
PASSWORD_VERIFY_FUNCTION NULL
PASSWORD_LOCK_TIME 1
PASSWORD_GRACE_TIME 5
7 rows selected.
5 잘못된 암호를 입력하여 Jeff 사용자로 로그인합니다. 잘못된 암호 입력을 두 번
시도한 후 올바른 암호를 입력하여 다시 로그인하십시오. 결과는?
SQL> conn jeff/jeff
ERROR:
ORA-01017: invalid username/password; logon denied
Warning: You are no longer connected to ORACLE.
SQL> conn jeff/asdfa
ERROR:
ORA-28000: the account is locked
SQL> conn jeff/test
ERROR:
ORA-28000: the account is locked
6 DBA_USERS 데이터 딕셔너리 뷰를 사용하여 Jeff 사용자가 잠겨 있는지 확인하십시
오. Jeff 사용자 계정의 잠금을 해제한 다음 Jeff로 접속하십시오.
SQL> select username, account_status from dba_users
2 where username ='JEFF';
USERNAME ACCOUNT_STATUS
------------------------------ --------------------------------
JEFF LOCKED(TIMED)
alter user jeff account unlock;
SQL> select username, account_status from dba_users
2 where username ='JEFF';
USERNAME ACCOUNT_STATUS
------------------------------ --------------------------------
JEFF OPEN
SQL> conn jeff/j2f$;
Connected.
SQL>
7 DEFAULT 프로파일에 대한 암호 확인을 비활성화하십시오.
힌트: ALTER PROFILE명령을 사용하여 암호 확인을 비활성화합니다.
SQL> select * from dba_profiles
where profile='DEFAULT'
AND LIMIT != 'UNLIMITED';
PROFILE RESOURCE_NAME RESOURCE_T LIMIT
---------- -------------------------------- ---------- -----
DEFAULT FAILED_LOGIN_ATTEMPTS PASSWORD 1
DEFAULT PASSWORD_LIFE_TIME PASSWORD 30
DEFAULT PASSWORD_REUSE_TIME PASSWORD .0006
DEFAULT PASSWORD_VERIFY_FUNCTION PASSWORD NULL
DEFAULT PASSWORD_LOCK_TIME PASSWORD 1
DEFAULT PASSWORD_GRACE_TIME PASSWORD 5
alter profile default limit
failed_login_attempts UNLIMITED
PASSWORD_LIFE_TIME UNLIMITED
PASSWORD_REUSE_TIME UNLIMITED
PASSWORD_LOCK_TIME UNLIMITED
PASSWORD_GRACE_TIME UNLIMITED;
SQL> select * from dba_profiles
2 where profile='DEFAULT'
3 AND LIMIT != 'UNLIMITED';
PROFILE RESOURCE_NAME RESOURCE_T LIMIT
---------- -------------------------------- ---------- -----
DEFAULT PASSWORD_VERIFY_FUNCTION PASSWORD NULL
8. 잘못된 암호를 입력하여 Jeff 사용자로 로그인합니다. 잘못된 암호 입력을 두 번
시도한 후 올바른 암호를 입력하여 다시 로그인하십시오. 결과는?
SQL> conn jeff/asdf
ERROR:
ORA-01017: invalid username/password; logon denied
SQL> conn jeff/ass
ERROR:
ORA-01017: invalid username/password; logon denied
SQL> conn jeff/j2f$;
Connected.