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 overdose | 2008/11/08 11:25 | ORACLE | 트랙백 | 덧글(0)

트랙백 주소 : http://devideby0.egloos.com/tb/2128516
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]

:         :

:

비공개 덧글

◀ 이전 페이지          다음 페이지 ▶