2011年3月8日 星期二

設定 Oracle User 的連線上限


利用 User Profile 的功能

-- 首先利用 system 帳號檢查是否系統的 resource_limit 的狀態
SQL> show parameter resource_limit
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
resource_limit                       boolean     FALSE 

-- 將 resource_limit 啟動
SQL> alter system set resource_limit=true;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
resource_limit                       boolean     TRUE

-- 建立一個 profile 來限定 csims 的連線上限 (假設 20), session_limit20 隨便您定義

SQL> create profile session_limit20 limit sessions_per_user 20;
Profile created.

-- 把新建的 profile apply 到 csims 帳號
SQL> alter user csims profile session_limit20;

User altered.

-- 移去該 profile
SQL> drop profile session_limit20 cascade;

-- 回復 Account 對應的 profile
SQL> alter user csims profile default;


CREATE PROFILE profile
LIMIT { resource_parameters
         | password_parameters
         }
           [ resource_parameters
           | password_parameters
           ]... ;
           
可限定的有一大堆,   
<resource_parameters>
{ { SESSIONS_PER_USER
 | CPU_PER_SESSION
 | CPU_PER_CALL
 | CONNECT_TIME
 | IDLE_TIME
 | LOGICAL_READS_PER_SESSION
 | LOGICAL_READS_PER_CALL
 | COMPOSITE_LIMIT
 }
 { integer | UNLIMITED | DEFAULT }
| PRIVATE_SGA
 { integer [ K | M ] | UNLIMITED | DEFAULT }
}
< password_parameters >
{ { FAILED_LOGIN_ATTEMPTS
 | PASSWORD_LIFE_TIME
 | PASSWORD_REUSE_TIME
 | PASSWORD_REUSE_MAX
 | PASSWORD_LOCK_TIME
 | PASSWORD_GRACE_TIME
 }
 { expr | UNLIMITED | DEFAULT }
| PASSWORD_VERIFY_FUNCTION
     { function | NULL | DEFAULT }
}

可設定 User 的最多連線 (SESSIONS_PER_USER), 連線時間  (CONNECT_TIME)

沒有留言:

張貼留言