'oralce profile'에 해당되는 글 1건

  1. 2006.12.21 Oracle profile 기능

2006. 12. 21. 10:37 오라클

Oracle profile 기능



PURPOSE
-------

Profile을 이용한 사용자 자원 관리에 대해서 알아보자

Explanation
-----------

(1) Profile을 사용할 수 있도록 환경 설정

SQL> connect system
Enter password:
Connected.

SQL> show parameter resource

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
enqueue_resources                    integer     968
resource_limit                       boolean     FALSE
resource_manager_plan                string

SQL> alter system set resource_limit = true scope=spfile;
System altered.

# resource_limit를 true로 변경한 후 DB 재시작.

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.

SQL> startup
ORACLE instance started.
Total System Global Area  236000476 bytes
Fixed Size                   451804 bytes
Variable Size             201326592 bytes
Database Buffers           33554432 bytes
Redo Buffers                 667648 bytes
Database mounted.
Database opened.

SQL> show parameter resource

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
enqueue_resources                    integer     968
resource_limit                       boolean     TRUE
resource_manager_plan                string

(2) Profile에는 어떤것들이 있는지 조회해 보자

SQL> desc dba_profiles;

Name                                      Null?    Type
----------------------------------------- -------- ----------------------------
PROFILE                                   NOT NULL VARCHAR2(30)
RESOURCE_NAME                             NOT NULL VARCHAR2(32)
RESOURCE_TYPE                                      VARCHAR2(8)
LIMIT                                              VARCHAR2(40)

SQL> select resource_name, resource_type from dba_profiles;

RESOURCE_NAME                    RESOURCE
-------------------------------- --------
COMPOSITE_LIMIT                  KERNEL
FAILED_LOGIN_ATTEMPTS            PASSWORD
SESSIONS_PER_USER                KERNEL
PASSWORD_LIFE_TIME               PASSWORD
CPU_PER_SESSION                  KERNEL
PASSWORD_REUSE_TIME              PASSWORD
CPU_PER_CALL                     KERNEL
PASSWORD_REUSE_MAX               PASSWORD
LOGICAL_READS_PER_SESSION        KERNEL
PASSWORD_VERIFY_FUNCTION         PASSWORD
LOGICAL_READS_PER_CALL           KERNEL

RESOURCE_NAME                    RESOURCE
-------------------------------- --------
PASSWORD_LOCK_TIME               PASSWORD
IDLE_TIME                        KERNEL
PASSWORD_GRACE_TIME              PASSWORD
CONNECT_TIME                     KERNEL
PRIVATE_SGA                      KERNEL

(3) Profile 생성

SQL> create profile test_profile limit
  2  sessions_per_user 2
  3  cpu_per_session unlimited
  4  cpu_per_call 6000
  5  idle_time 1
  6  connect_time 480
  7  /
Profile created.

# 세션당 2명의 유저를 허용하고 Session의 접속후 1분 동안 아무런 작업이 일어나지 않는
  다면 자동으로 Session을 종료한다.
 
# Profile을 생성하여 사용자에게 지정하지 않으면 새롭게 생성되는 모든 사용자는 Default로
  정의된 모든 Profile의 기능을 수행할수 있다.

# connect_time은 8분( 480 )동안만 Session을 사용할 수 있게 제한한다.

SQL> select profile, resource_name, limit from dba_profiles
  2  where profile = 'TEST_PROFILE';

PROFILE                        RESOURCE_NAME                    LIMIT
------------------------------ -------------------------------- --------------
TEST_PROFILE                   COMPOSITE_LIMIT                  DEFAULT
TEST_PROFILE                   SESSIONS_PER_USER                2
TEST_PROFILE                   CPU_PER_SESSION                  UNLIMITED
TEST_PROFILE                   CPU_PER_CALL                     6000
TEST_PROFILE                   LOGICAL_READS_PER_SESSION        DEFAULT
TEST_PROFILE                   LOGICAL_READS_PER_CALL           DEFAULT
TEST_PROFILE                   IDLE_TIME                        1
TEST_PROFILE                   CONNECT_TIME                     480
TEST_PROFILE                   PRIVATE_SGA                      DEFAULT
TEST_PROFILE                   FAILED_LOGIN_ATTEMPTS            DEFAULT
TEST_PROFILE                   PASSWORD_LIFE_TIME               DEFAULT
TEST_PROFILE                   PASSWORD_REUSE_TIME              DEFAULT
TEST_PROFILE                   PASSWORD_REUSE_MAX               DEFAULT
TEST_PROFILE                   PASSWORD_VERIFY_FUNCTION         DEFAULT
TEST_PROFILE                   PASSWORD_LOCK_TIME               DEFAULT
TEST_PROFILE                   PASSWORD_GRACE_TIME              DEFAULT

# 설정한 Profile이 제대로 적용되었는지 확인.

(4) 생성한 Profile을 사용자에게 적용시키고 결과를 확인한다

SQL> alter user kigook profile test_profile;
User altered.

SQL> connect kigook/kigook
Connected.

SQL> select * from t;

ID
--
aa

# 1분후에 다시 같은 문장을 조회해 보자.

SQL> /
select * from t
*
ERROR at line 1:
ORA-02396: exceeded maximum idle time, please connect again

# 접속후 1분간 아무런 작업이 없으면 자동으로 Session을 종료시키는지 확인.

(5) Profile의 수정

SQL> connect system 
Enter password:
Connected.

SQL> alter profile test_profile limit
  2  idle_time 10
  3  /
Profile altered.

SQL> select resource_name, limit from dba_profiles
  2  where resource_name like '%IDLE_TIME%';

RESOURCE_NAME                    LIMIT
-------------------------------- ----------------------------------------
IDLE_TIME                        UNLIMITED
IDLE_TIME                        10

# 변경된 Profile의 내용 확인.

Posted by pat98
이전버튼 1 이전버튼

05-09 18:52
Flag Counter
Yesterday
Today
Total

글 보관함

최근에 올라온 글

달력

 « |  » 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

최근에 달린 댓글