Oracle限制某個用戶的鏈接數及PROFILE介紹

限制一個用戶的連接數,能夠經過ORACLE的PROFILE文件來實現sql

 

1.     查看resource_limit參數:數據庫

SQL> show parameter resource_limitsession

若是爲FALSE,設置 RESOURCE_LIMIT參數爲TRUE,即開啓資源限制:資源

alter system set resource_limit =TRUE; it

該改變對密碼資源無效,密碼資源老是可用的io

2.     建立PROFILE :function

SQL>create  profile sess limit sessions_per_user 20; --最大鏈接數限制爲20file

3.     將PROFILE指定給用戶:select

SQL>alter user ydgwb profile sess;並行

 

附:PROFILE介紹

ORACLE的PROFILE文件是限制數據庫用戶使用資源的一種手段。

如:控制session或sql能使用的CPU、控制用戶的密碼管理策略等。數據庫建立後,系統則存在名爲DEFAULT的默認PROFILE,若不作特殊指定,建立用戶時用戶默認使用的PROFILE就是DEFAULT。

1.     查看視圖dba_profiles可找出數據庫中有哪些PROFILE。

SQL> select distinct profile from dba_profiles;

2.     查看全部的PROFILE
SQL> select * from dba_profiles order by PROFILE;

PROFILE RESOURCE_NAME RESOURCE LIMIT

-------------------- ------------------------------ -------- ----------

DEFAULT COMPOSITE_LIMIT KERNEL UNLIMITED

DEFAULT PASSWORD_LOCK_TIME PASSWORD 1

DEFAULT PASSWORD_VERIFY_FUNCTION PASSWORD NULL

DEFAULT PASSWORD_REUSE_MAX PASSWORD UNLIMITED

DEFAULT PASSWORD_REUSE_TIME PASSWORD UNLIMITED

DEFAULT PASSWORD_LIFE_TIME PASSWORD 180

DEFAULT FAILED_LOGIN_ATTEMPTS PASSWORD UNLIMITED

DEFAULT PRIVATE_SGA KERNEL UNLIMITED

DEFAULT CONNECT_TIME KERNEL UNLIMITED

DEFAULT IDLE_TIME KERNEL UNLIMITED

DEFAULT LOGICAL_READS_PER_CALL KERNEL UNLIMITED

DEFAULT LOGICAL_READS_PER_SESSION KERNEL UNLIMITED

DEFAULT CPU_PER_CALL KERNEL UNLIMITED

DEFAULT CPU_PER_SESSION KERNEL UNLIMITED

DEFAULT SESSIONS_PER_USER KERNEL UNLIMITED

DEFAULT PASSWORD_GRACE_TIME PASSWORD 7

參數解釋

一、對數據庫資源作限制

{ { SESSIONS_PER_USER 每一個用戶名所容許的並行會話數

| CPU_PER_SESSION 一個會話一共可使用的CPU時間,單位是百分之一秒

| CPU_PER_CALL 一次SQL調用(解析、執行和獲取)容許使用的CPU時間

| CONNECT_TIME 限制會話鏈接時間,單位是分鐘

| IDLE_TIME 容許空閒會話的時間,單位是分鐘

| LOGICAL_READS_PER_SESSION 限制會話對數據塊的讀取,單位是塊

| LOGICAL_READS_PER_CALL 限制SQL調用對數據塊的讀取,單位是塊

| COMPOSITE_LIMIT 「組合打法」

} { integer | UNLIMITED | DEFAULT }

| PRIVATE_SGA 限制會話在SGA中Shared Pool中私有空間的分配 { size_clause | UNLIMITED | DEFAULT}

}

二、對密碼作限制

{ { FAILED_LOGIN_ATTEMPTS 賬戶被鎖定以前能夠錯誤嘗試的次數

| PASSWORD_LIFE_TIME 密碼能夠被使用的天數,單位是天,默認值180天

| PASSWORD_REUSE_TIME 密碼可重用的間隔時間(結合PASSWORD_REUSE_MAX)

| PASSWORD_REUSE_MAX 密碼的最大改變次數(結合PASSWORD_REUSE_TIME)

| PASSWORD_LOCK_TIME 超過錯誤嘗試次數後,用戶被鎖定的天數,默認1天

| PASSWORD_GRACE_TIME 當密碼過時以後還有多少天可使用原密碼

} { expr | UNLIMITED | DEFAULT }

| PASSWORD_VERIFY_FUNCTION { function | NULL | DEFAULT }

}

修改profile:alter profile [資源文件名] limit [資源名] unlimited;

如:alter profile default limit failed_login_attempts 100;

刪除PROFILE:drop profile [資源文件名] [CASCADE] ;

若建立的PROFILE已經受權給了某個用戶,使用CASCADE級聯收回相應的限制,收回限制信息後將以系統默認的PROFILE對該用戶進行限制。

設置PROFILE參數的生效時間

一、用戶全部擁有的PROFILE中有關密碼的限制當即生效,不受限制。從這個可看出Oracle對用戶密碼的重視程度。

二、用戶全部擁有的PROFILE中有關資源的限制與resource_limit參數的設置有關,當爲TRUE時生效,當爲FALSE時(默認值)設置任何值都無效。

SQL> show parameter resource_limit

NAME TYPE VALUE

-------------------- ----------- -------

resource_limit boolean FALSE

相關文章
相關標籤/搜索