Oracle之dba_profiles解析

梓沐發表於2016-02-15
一、關於oracle的profiles
profiles檔案是口令和資源限制的配置集合,包括CPU的時間、I/O的使用、空閒時間、連線時間、併發會話數量、密碼策略等對於資源的使用profile可以做到控制會話級別或語句呼叫級別。oracle自帶的預設好多是不限制的,使用者建立時都會被指定這個PROFILE。

二、profile引數詳解
檢視引數檔案:

SQL> select * from dba_profiles where profile='DEFAULT';
PROFILE                        RESOURCE_NAME                    RESOURCE_TYPE LIMIT
------------------------------ -------------------------------- ------------- ----------------------------------------
DEFAULT                        COMPOSITE_LIMIT                  KERNEL        UNLIMITED
DEFAULT                        SESSIONS_PER_USER                KERNEL        UNLIMITED
DEFAULT                        CPU_PER_SESSION                  KERNEL        UNLIMITED
DEFAULT                        CPU_PER_CALL                     KERNEL        UNLIMITED
DEFAULT                        LOGICAL_READS_PER_SESSION        KERNEL        UNLIMITED
DEFAULT                        LOGICAL_READS_PER_CALL           KERNEL        UNLIMITED
DEFAULT                        IDLE_TIME                        KERNEL        UNLIMITED
DEFAULT                        CONNECT_TIME                     KERNEL        UNLIMITED
DEFAULT                        PRIVATE_SGA                      KERNEL        UNLIMITED
DEFAULT                        FAILED_LOGIN_ATTEMPTS            PASSWORD      10
DEFAULT                        PASSWORD_LIFE_TIME               PASSWORD      180
DEFAULT                        PASSWORD_REUSE_TIME              PASSWORD      UNLIMITED
DEFAULT                        PASSWORD_REUSE_MAX               PASSWORD      UNLIMITED
DEFAULT                        PASSWORD_VERIFY_FUNCTION         PASSWORD      NULL
DEFAULT                        PASSWORD_LOCK_TIME               PASSWORD      1
DEFAULT                        PASSWORD_GRACE_TIME              PASSWORD      7
16 rows selected

Resource_parameter部分(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單位表示。

Password_parameter部分(RESOURCE_TYPE=PASSWORD):
 1.Failed_login_attempts:指定在帳戶被鎖定之前所允許嘗試登陸的的最大次數。
 2.Password_life_time:指定同一密碼所允許使用的天數。
 3.Password_reuse_time和password_reuse_max:這兩個引數必須互相關聯設定,password_reuse_time指定了密碼不能重用前的天數,
 而password_reuse_max則指定了當前密碼被重用之前密碼改變的次數。兩個引數都必須被設定為整數。
 4.Password_lock_time:指定登陸嘗試失敗次數到達後帳戶的鎖定時間,以天為單位。
 5.Password_grace_time:指定寬限天數,資料庫發出警告到登陸失效前的天數。如果資料庫密碼在這中間沒有被修改,則過期會失效。
 6.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

可以在建立使用者時指定想要使用的profiles

SQL> create user cancer identified by cancer default tablespace test temporary tablespace temp profile MY_PROFILE;
User created

SQL> select username,profile from dba_users where username='CANCER';
USERNAME                       PROFILE
------------------------------ ------------------------------
CANCER                         MY_PROFILE

或者對已經建立的使用者變更其profiles

SQL> alter user cancer profile default;
User altered

SQL> select username,profile from dba_users where username='CANCER';
USERNAME                       PROFILE
------------------------------ ------------------------------
CANCER                         DEFAULT





來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29812844/viewspace-1988787/,如需轉載,請註明出處,否則將追究法律責任。

相關文章