15.管理profile(筆記)

tonykorn97發表於2006-04-24

15.管理profile


Proflie是口令限制,資源限制的命名集合.建立oracle資料庫時,oracle會自動建立名為DEFAULT的PROFILE,初始化的DEFAULT沒有進行任何口令和資源限制.使用PROFILE有以下一些主要事項.


1,建立PROFILE時,如果只設定了部分口令或資源限制選項,其他選項會自動使用預設值(DEFAULT的相應選項)

2,建立使用者時,如果不指定PROFILE選項,oracle會自動將DEFAULT分配給相應的資料庫使用者.

3,一個使用者只能分配一個PROFILE.如果要同時管理使用者的口令和資源,那麼在建立PROFILE時應該同時指定口令和資源選項.

4,使用PROFILE管理口令時,口令管理選項總是處於被啟用狀態,但如果使用PROFILE管理資源,必須要啟用資源限制.


帳戶鎖定

帳戶鎖定用於控制使用者聯絡登陸失敗的最大次數.

FAILED_LOGIN_ATTEMPTS:用於指定聯絡登陸的最大失敗次數.

PASSWORD_LOCK_TIME:用於指定帳戶被鎖定的天數.

為了控制帳戶鎖定,必須首先執行CREATE PROFILE命令建立PROFILE,然後使用ALTER USER命令將profile分配給使用者.

CREATE PROFILE lock_accout LIMIT

FAILED_LOGIN_ATTEMPTS 3

PASSWORD_LOCK_TIME 10;


ALTER USER devep PROFILE lock_account;


如果建立PROFILE時沒有提供PASSWORD_LOCK_TIME選項,將自動使用預設值(UNLIMITED),在這種情況下,需要DBA手工解鎖.

ALTER USER devep UNLOCK;


口令有效期和終止期

PASSWORD_LIFE_TIME:用於指定口令有效期

PASSWORD_GRACE_TIME:用於指定口令寬限期.

為了強制使用者定期改變口令,二者必須同時設定.

CREATE PROFILE password_life_ime LIMIT

PASSWORD_LIFE_TIME 10

PASSWORD_GRACE_TIME 2;


ALTER USER devep PROFILE password_life_time;


口令歷史

PASSWORD_REUSE_TIME:用於指定口令可重用時間.

PASSWORD_REUSE_MAX;用於指定在重用口令之前口令需要改變的次數.

需要主要,使用口令歷史選項時,只能使用其中的一個選項.並將另一個選項設定為UNLIMITED.


CREATE PROFILE password_history LIMIT

PASSWORD_LIFE_TIME 10 PASSWORD_GRACE_TIME 2

PASSWORD_REUSE_TIME 10 PASSWORD_REUSE_MAX UNLIMITED;


口令複雜性校驗.

口令複雜性校驗是指使用PL/SQL函式確保使用者口令的有效性,從而加強使用者使用複雜口令.

1,使用系統口令校驗函式VERIFY_FUNCTION

安裝oracle資料庫時,oracle提供了sql指令碼UTLPWDMG.SQL,改指令碼用於建立系統口令校驗函式VERIFY_FUNCTION,改口令校驗函式實現了以下口令規則.

口令不能少於4個字元

口令不能與使用者名稱相同.

口令至少包含一個字元,一個數字和一個特殊字元($,_,#,!等)

需要主要,當建立系統口令校驗函式VERIFY_FUNCTION時,必須以SYS使用者執行SQL指令碼utlpwdmg.sql.

SQL>@%oracle_home%rdbmsadminutlpwdmg.sql

建立系統口令校驗函式VERIFY_FUNCTION,還會修改DEFAULT的其他口令管理選項.

建立了VERIFY_FUNCTION函式後,如果在修改使用者口令時口令不能滿足改函式的規則,將顯示錯誤資訊.


2,使用自定義口令校驗函式.(略)

3,禁用口令校驗

如果要禁用口令校驗函式,可以將PASSWORD_VERIFY_FUNCTION選項設定為NULL.

ALTER PROFILE password_history LIMIT

PASSWORD_VERIFY_FUNCTION NULL;


ALTER USER devep IDENTIFIED BY devep;

使用PROFILE管理資源

使用PROFILE管理資源時,必須啟用資源限制.

ALTER SYSTEM SET resource_limit=TRUE;

1,限制會話資源是指限制會話在連線期間所佔用的總計資源.當超過會話資源限制時,oracle不好對SQL語句進行任何處理並返回錯誤資訊.

CPU_PER_SESSION:用於指定每個會話可以佔用的最大CPU時間.

LOGICAL_READS_PER_SESSON:用於指定會話的最大邏輯讀取次數.

PRIVATE_SGA:用於指定會話在共享池中可以分配的最大總計私有空間.需要注意,該選項只使用與共享伺服器模式.

COMPOSITE_LIMIT:用於指定會話的總計資源消耗(單位:服務單元).oracle會根據CPU_PER_SESSION,CONNECT_TIME,LOGICAL_READS_PER_SESSION以及PRIVATE_SGA的求權結果取得總計服務單元.

下面以限制帳戶DEVEP會話佔用CPU時間不超過50秒,邏輯讀取次數不超過100次為例,說明使用PROFILE限制會話資源的方法.為了控制會話資源,首先應執行CREATE PROFILE命令建立PROFILE,然後使用ALTER USER 命令將PROFILE分配給使用者DEVEP.

CREATE PROFILE session_limit LIMIT

CPU_PER_SESSION 5000 LOGICAL_READS_PER_SESSION 100;


ALTER USER devep PROFILE session_limit;


限制呼叫資源

CPU_PER_CALL:限制每次呼叫(解析,執行或提取資料)可佔用的最大CPU時間(單位:百分之一秒)

LOGICAL_READS_PER_CALL:用於限制每次呼叫的最大邏輯I/O次數.


限制其他資源

SESSIONS_PER_USER:用於指定每個使用者的最大併發會話個數.

CONNECT_TIME:用於指定會話的最大連線時間.

IDLE_TIME:用於指定會話的最大空閒時間.


修改和刪除PROFILE

修改PROFILE是使用ALTER PROFILE命令完成的.

刪除PROFILE是使用DROP PROFILE命令完成的.

DROP PROFILE call_limit;

如果PROFILE已經分配給某個使用者,那麼當刪除該PROFILE時必須帶有CASCADE選項.


顯示PROFILE資訊.

1,顯示使用者的PROFILE

透過查詢資料字典檢視dba_users,可以顯示使用者所使用的PROFILE

SELECT profile FROM dba_users WHERE username=’DEVEP’;

Username 用於標識資料庫使用者名稱,profile用於標識使用者使用的PROFILE


2,顯示PROFILE的口令和資源限制選項.

Dba_profiles,可以顯示PROFILE的口令限制,資源限制資訊.

SELECT resource_name,limit FROM dba_profiles

WHERE profile=’SESSION_LIMIT’ AND resource_type=’KERNEL’;

Resource_name用於標識PROFILE選項名,LIMIT用於標識PROFIEL選項值,profile 用於標識PROFILE名,resource_type用於標識PROFILE選項的型別(PASSWORD:口令選項,KERNEL:資源選項).

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

相關文章