TECH
QUESTION
자주하는 질문답변 입니다.
Oracle
작성자 | 유건데이타 | 등록일 | 2015-02-06 |
제목 | 특정 DB USER의 SESSION수를 제한하는 방법 (SESSION_PER_USER) | ||
---|---|---|---|
특정 DB USER의 SESSION수를 제한하는 방법 (SESSION_PER_USER) ================================================ PURPOSE ------- db user별로 데이타베이스에 연결되는 session의 수를 제한할 필요가 있는 경우가 있다. 이렇게 db user별로 접속되는 session의 수를 제한하는 방법을 살펴본다. Explanation & Example ----------------------- 여기에서는 test_user라는 db user가 항상 하나의 session만 연결 가능하도록 하는 방법을 살펴본다. 특정 사용자가 session을 연결하여 사용하는 경우, 다른 사용자는 같은 test_user로는 데이타베이스로 연결을 금지하고자 하는 경우이다. 여기에서는 session의 수를 1로 제한했지만, 이 숫자는 상황에 따라 원하는 대로 지정할 수 있고, db user명이나 profile의 이름도 상황에 맞게 사용하면 된다. 1. resource_limit 지정 먼저 다음과 같은 parameter를 $ORACLE_HOME/dbs/initSID.ora file에 지정 하고, 데이타베이스를 restartup한다. resource_limit = true 9i에서 spfile을 사용중이라면 다음과 같이 지정하고, db를 restart할 필요가 없다. alter system set resource_limit=true scope=both; 2. 다음과 같이 user당 session수를 제한하는 profile을 생성한다. sqlplus system/manager SQL>create profile single_pro limit sessions_per_user 1; profile에는 idle_time등 다른 항목도 많지만, 여기에서는 나머지는 모두 default로 두고 sessions_per_user만 제한한다. 3. 새로 생성하는 user라면 다음과 같이 생성당시에 profile을 지정하면 된다. SQL>create user test_user identified by test profile single_pro; SQL>grant connect, resource to test_user; 이미 생성된 user라면 다음과 같이 alter user명령어를 이용한다. SQL>alter user test_user profile single_pro; 4. test_user로 접속하면 다음과 같이 처음 접속은 성공하나, 처음 session이 끊기지 않은 상태에서 두번째 접속을 시도하는 경우 다음과 같은 오류가 발생한다. Session 1: connect test_user/test -> Connected Session 2: Connect test_user/test -> ORA-02391: exceeded simultaneous SESSIONS_PER_USER limit Reference Documents ------------------- |
Comment | |||
---|---|---|---|
등록된 코멘트가 없습니다. |