oracle profile的維護--轉載 ORACLE PROFILE含義,修改,新增
ORACLE PROFILE含義,修改,新增
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時(預設值)設定任何值都無效。
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時(預設值)設定任何值都無效。