小編給大家分享一下Oracle如何限制某個(gè)用戶的連接數(shù),相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
專注于為中小企業(yè)提供做網(wǎng)站、網(wǎng)站設(shè)計(jì)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)巴林右旗免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了成百上千企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
要限制一個(gè)用戶的鏈接數(shù),可以通過ORACLE的PROFILE文件來實(shí)現(xiàn)
1. 查看resource_limit參數(shù):
SQL> show parameter resource_limit
如果為FALSE,設(shè)置 RESOURCE_LIMIT參數(shù)為TRUE,即開啟資源限制:
alter system set resource_limit =TRUE;
該改變對密碼資源無效,密碼資源總是可用的
2. 創(chuàng)建PROFILE :
SQL>create profile sess limit sessions_per_user 20; --最大連接數(shù)限制為20
3. 將PROFILE指定給用戶:
SQL>alter user ydgwb profile sess;
附:PROFILE介紹
ORACLE的PROFILE文件是限制數(shù)據(jù)庫用戶使用資源的一種手段。
如:控制session或sql能使用的CPU、控制用戶的密碼管理策略等。數(shù)據(jù)庫創(chuàng)建后,系統(tǒng)則存在名為DEFAULT的默認(rèn)PROFILE,若不做特殊指定,創(chuàng)建用戶時(shí)用戶默認(rèn)使用的PROFILE就是DEFAULT。
1. 查看視圖dba_profiles可找出數(shù)據(jù)庫中有哪些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
參數(shù)解釋
1、對數(shù)據(jù)庫資源做限制
{ { SESSIONS_PER_USER 每個(gè)用戶名所允許的并行會(huì)話數(shù)
| CPU_PER_SESSION 一個(gè)會(huì)話一共可以使用的CPU時(shí)間,單位是百分之一秒
| CPU_PER_CALL 一次SQL調(diào)用(解析、執(zhí)行和獲取)允許使用的CPU時(shí)間
| CONNECT_TIME 限制會(huì)話連接時(shí)間,單位是分鐘
| IDLE_TIME 允許空閑會(huì)話的時(shí)間,單位是分鐘
| LOGICAL_READS_PER_SESSION 限制會(huì)話對數(shù)據(jù)塊的讀取,單位是塊
| LOGICAL_READS_PER_CALL 限制SQL調(diào)用對數(shù)據(jù)塊的讀取,單位是塊
| COMPOSITE_LIMIT “組合打法”
} { integer | UNLIMITED | DEFAULT }
| PRIVATE_SGA 限制會(huì)話在SGA中Shared Pool中私有空間的分配 { size_clause | UNLIMITED | DEFAULT}
}
2、對密碼做限制
{ { FAILED_LOGIN_ATTEMPTS 帳戶被鎖定之前可以錯(cuò)誤嘗試的次數(shù)
| PASSWORD_LIFE_TIME 密碼可以被使用的天數(shù),單位是天,默認(rèn)值180天
| PASSWORD_REUSE_TIME 密碼可重用的間隔時(shí)間(結(jié)合PASSWORD_REUSE_MAX)
| PASSWORD_REUSE_MAX 密碼的最大改變次數(shù)(結(jié)合PASSWORD_REUSE_TIME)
| PASSWORD_LOCK_TIME 超過錯(cuò)誤嘗試次數(shù)后,用戶被鎖定的天數(shù),默認(rèn)1天
| PASSWORD_GRACE_TIME 當(dāng)密碼過期之后還有多少天可以使用原密碼
} { 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] ;
若創(chuàng)建的PROFILE已經(jīng)授權(quán)給了某個(gè)用戶,使用CASCADE級聯(lián)收回相應(yīng)的限制,收回限制信息后將以系統(tǒng)默認(rèn)的PROFILE對該用戶進(jìn)行限制。
設(shè)置PROFILE參數(shù)的生效時(shí)間
1、用戶所有擁有的PROFILE中有關(guān)密碼的限制立即生效,不受限制。從這個(gè)可看出Oracle對用戶密碼的重視程度。
2、用戶所有擁有的PROFILE中有關(guān)資源的限制與resource_limit參數(shù)的設(shè)置有關(guān),當(dāng)為TRUE時(shí)生效,當(dāng)為FALSE時(shí)(默認(rèn)值)設(shè)置任何值都無效。
SQL> show parameter resource_limit
NAME TYPE VALUE
-------------------- ----------- -------
resource_limit boolean FALSE
以上是“Oracle如何限制某個(gè)用戶的連接數(shù)”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!