profiles文件是口令和資源限制的配置集合,包括CPU的時間、I/O的使用、空閑時間、連接時間、並發會話數量、密碼策略等對於資源的使用profile可以做到控制會話級別或語句調用級別。oracle自帶的默認好多是不限制的,用戶創建時都會被指定這個PROFILE。
oracle的profile可以在dba_profiles中查詢。
select * from dba_profiles;
結果如下:
其中資源類(RESOURCE_TYPE=KERNEL)含義說明:
--1.Session_per_user: --指定限制用戶的並發會話的數目。 --2.Cpu_per_session: --指定會話的CPU時間限制,單位為百分之一秒。 --3.Cpu_per_call: --指定一次調用(解析、執行和提取)的CPU時間限制,單位為百分之一秒。 --4.Connect_time: --指定會話的總的連接時間,以分鍾為單位。 --5.Idle_time: --指定會話允許連續不活動的總的時間,以分鍾為單位,超過該時間,會話將斷開。 --6.Logical_reads_per_session: --指定一個會話允許讀的數據塊的數目,包括從內存和磁盤讀的所有數據塊。 --7.Logical_read_per_call: --指定一次執行SQL(解析、執行和提取)調用所允許讀的數據塊的最大數目。 --8.Private_sga: --指定一個會話可以在共享池(SGA)中所允許分配的最大空間,以字節為單位。 --9.Composite_limit: --指定一個會話的總的資源消耗,以service units單位表示。
其中密碼類(RESOURCE_TYPE=PASSWORD)含義說明:
--1.Failed_login_attempts: --指定在帳戶被鎖定之前所允許錯誤密碼嘗試登陸的的最大次數。 -- --2.Password_life_time: --指定同一密碼所允許使用的天數。 -- --3.Password_reuse_time --指可以重復使用多長時間之前的密碼 -- --4.password_reuse_max: --指的是當前密碼可以被重用之前,必須進行密碼修改的次數。 -- --5.Password_lock_time: --指定登陸嘗試失敗次數到達后帳戶的鎖定時間,以天為單位。 -- --6.Password_grace_time: --指定寬限天數,數據庫發出警告到登陸失效前的天數。如果數據庫密碼在這中間沒有被修改,則過期會失效。 -- --7.Password_verify_function: --該字段允許將復雜的PL/SQL密碼驗證腳本做為參數傳遞到create --profile語句。Oracle數據庫提供了一個默認的腳本,但是自己可以創建自己的驗證規則或使用第三方軟件驗證。 --對Function名稱,指定的是密碼驗證規則的名稱,指定為Null則意味着不使用密碼驗證功能。
創建自定義profile
CREATE PROFILE my_profile LIMIT SESSIONS_PER_USER UNLIMITED CPU_PER_SESSION UNLIMITED CPU_PER_CALL 6000 CONNECT_TIME 60 LOGICAL_READS_PER_SESSION DEFAULT LOGICAL_READS_PER_CALL 6000 COMPOSITE_LIMIT 6000000 PRIVATE_SGA 66K FAILED_LOGIN_ATTEMPTS 6 PASSWORD_LIFE_TIME 60 PASSWORD_REUSE_TIME 60 PASSWORD_REUSE_MAX 5 PASSWORD_LOCK_TIME 1/24 PASSWORD_GRACE_TIME 10;
可以在dba_profiles中查詢:
select * from dba_profiles where profile = 'MY_PROFILE';
結果如下:
可以讓用戶使用自定義的profile
alter user apps profile my_profile;
可以通過如下查詢用戶的profile
SELECT du.username, dp.* FROM dba_users du, dba_profiles dp WHERE du.username = 'APPS' AND dp.profile = du.profile;
結果如下
修改profile
alter profile default limit PASSWORD_LIFE_TIME UNLIMITED;
結果:
刪除並收回已經授予的profile
drop profile my_profile CASCADE;
當profile刪除后,原來使用該profile的用戶會使用默認的profile,如下圖
設置PROFILE參數的生效時間
1、用戶所有擁有的PROFILE中有關密碼的限制立即生效,不受限制。從這個可看出Oracle對用戶密碼的重視程度。
2、用戶所有擁有的PROFILE中有關資源的限制與resource_limit參數的設置有關,當為TRUE時生效,當為FALSE時(默認值)設置任何值都無效。