您好,登錄后才能下訂單哦!
小編給大家分享一下Oracle如何限制某個用戶的連接數,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
要限制一個用戶的鏈接數,可以通過ORACLE的PROFILE文件來實現
1. 查看resource_limit參數:
SQL> show parameter resource_limit
如果為FALSE,設置 RESOURCE_LIMIT參數為TRUE,即開啟資源限制:
alter system set resource_limit =TRUE;
該改變對密碼資源無效,密碼資源總是可用的
2. 創建PROFILE :
SQL>create profile sess limit sessions_per_user 20; --最大連接數限制為20
3. 將PROFILE指定給用戶:
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
參數解釋
1、對數據庫資源做限制
{ { 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}
}
2、對密碼做限制
{ { 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參數的生效時間
1、用戶所有擁有的PROFILE中有關密碼的限制立即生效,不受限制。從這個可看出Oracle對用戶密碼的重視程度。
2、用戶所有擁有的PROFILE中有關資源的限制與resource_limit參數的設置有關,當為TRUE時生效,當為FALSE時(默認值)設置任何值都無效。
SQL> show parameter resource_limit
NAME TYPE VALUE
-------------------- ----------- -------
resource_limit boolean FALSE
以上是“Oracle如何限制某個用戶的連接數”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。