共計 2692 個字符,預計需要花費 7 分鐘才能閱讀完成。
丸趣 TV 小編給大家分享一下 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 如何限制某個用戶的連接數”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注丸趣 TV 行業資訊頻道!