2008년 11월 08일
Oracle - profile
프로파일은 사용자에게 부여하는 자원과 패스워드 관리 정책이다.
DB를 처음 생성할 때 자동으로 DEFAULT 프로파일이 생성되며,
프로파일을 지정하지 않고 생성된 유저는 이 프로파일 정책을 따르게 된다.
DEFAULT 프로파일은 최초에는 어떠한 제한도 가지고 있지 않는다.
1. 프로파일 생성
SQL> CREATE PROFILE any_profile_name LIMIT
CPU_PER_SESSION UNLIMITED
CPU_PER_CALL UNLIMITED
CONNECT_TIME UNLIMITED
IDLE_TIME UNLIMITED
SESSIONS_PER_USER UNLIMITED
LOGICAL_READS_PER_SESSION UNLIMITED
LOGICAL_READS_PER_CALL UNLIMITED
PRIVATE_SGA UNLIMITED
COMPOSITE_LIMIT UNLIMITED
PASSWORD_LIFE_TIME UNLIMITED
PASSWORD_GRACE_TIME UNLIMITED
PASSWORD_REUSE_MAX UNLIMITED
PASSWORD_REUSE_TIME UNLIMITED
FAILED_LOGIN_ATTEMPTS UNLIMITED
PASSWORD_LOCK_TIME UNLIMITED
PASSWORD_VERIFY_FUNCTION DEFAULT;
세부정보
- CPU_PER_SESSION (단위 : 1/100초)
: 해당 세션에 허용된 CPU 시간.
- CPU_PER_CALL (단위 : 1/100초)
: 호출(구문분석, 실행, 추출)을 위해 허용되는 CPU 시간.
- CONNECT_TIME (단위 : 분)
: 접속이 허용된 시간.
- IDLE_TIME (단위 : 분)
: 작업을 하지 않은 채로 접속이 허용된 시간.
데이터베이스 서비스
- SESSIONS_PER_USER
: 세션당 허용된 유저 수
- LOGICAL_READS_PER_SESSION (단위 : 블록)
: 세션이 디스크와 메모리에서 읽을 수 있는 블록 수.
- LOGICAL_READS_PER_CALL (단위 : 블록)
: SQL문을 수행하기 위해 세션이 릭을 수 있는 블록 수.
- PRIVATE_SGA (단위 : KByte)
: ※ shared sever를 사용할 때만 가능. shared pool에서 전용으로 사용할 수 있는 공간.
- COMPOSITE_LIMIT (단위 : 서비스)
: 하나의 서비스 단위에서 사용할 수 있는 총 비용.
CPU_PER_SESSION, CONNECT_TIME, LOGICAL_READS_PER_SESSION, PRIVATE_SGA에 가중치를 두어 계산한다.
패스워드
- PASSWORD_LIFE_TIME (단위 : 일)
: 같은 패스워드를 사용할 수 있는 기간 지정.
- PASSWORD_GRACE_TIME (단위 : 일)
: 패스워드 라이프 타임이 지난 후 계정을 잠그기 전까지 경고 메세지를 보여주는 기간.
- PASSWORD_REUSE_MAX
: 현재 사용하는 패스워드를 재사용하기 위해서는 패스워드를 몇 번 바꿔야 하는가.
- PASSWORD_REUSE_TIME (단위 : 일)
: 현재 사용하는 패스워드를 보관하는 기간.
- FAILED_LOGIN_ATTEMPTS
: 여기서 지정한 횟수를 초과한 로그인 실패가 있었을 경우 계정을 잠궈버린다.
- PASSWORD_LOCK_TIME (단위 : 일)
: 로그인 실패로 계정이 잠겼을 때, 지정한 일자가 지나면 자동으로 잠금이 풀린다.
- PASSWORD_VERIFY_FUNCTION
: 패스워드 복잡성 함수. $ORACLE_HOME/rdbms/admin/utlpwd.sql 이라는 스크립트를 수정하면
자신이 원하는 정책을 세울 수 있을 것이다.
※ 스크립트에는 펑션의 이름이 verify_function 로 지정되어 있다. 수정할 필요가 있다면 수정한다.
스크립트 마지막에 디폴트 프로필을 수정하는 부분이 있다. 적용하고 싶다면 적용하고 아니라면 삭제한다.
2. 프로파일 부여
SQL> ALTER USER any_user_name PROFILE any_profile_name;
혹은 생성시에 부여할 수도 있다.
SQL> CREATE USER any_user_name ... PROFILE any_profile_name ...;
3. 프로파일 수정
SQL> ALTER PROFILE any_profile_name LIMIT
...
any_profile_options
...;
수정된 프로파일은 현재 접속중인 세션에는 영향을 주지 않는다.
4. 프로파일 삭제
SQL> DROP PROFILE any_profile_name[ CASCADE];
해당 프로파일을 사용하는 유저가 있다면 cascade 옵션을 준다. 그렇게 해서 삭제된 유저의 프로파일은 서버의 기본 프로파일로 변경된다.
5. 프로파일 확인
DBA_USERS 의 PROFILE 컬럼, DBA_PROFILES 테이블의 PROFILE 컬럼을 조인한다.
# by | 2008/11/08 11:25 | ORACLE | 트랙백 | 덧글(0)





☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]