Oracle密碼驗證函數與Create Profile


今天看到了一個oracle密碼函數的東西,就在網上找文檔自己做測試,剛開始看不懂,最后做完記錄一下

密碼函數的作用就是要將用戶密碼進行限制,比如申請一個網站的賬號的時候,密碼會要求你不少於8位,必須要有一個大小寫,字符,或者英文加上數字才可以,這些都是可以對create user的密碼進行限制的,首先要接觸一個profile的參數,之前沒接觸過這個,profile的作用就是對一些CPU的資源,或者用戶密碼進行限制的。

oracle 用戶管理 :profile + tablespace + role + user

Oracle系統中的profile可以用來對用戶所能使用的數據庫資源進行限制,使用Create Profile命令創建一個Profile,用它來實現對數據庫資源的限制使用,如果把該profile分配給用戶,則該用戶所能使用的數據庫資源都在該profile的限制之內。

profile文件可以控制:CPU的時間 、I/O的使用 、IDLE TIME(空閑時間) 、CONNECT TIME(連接時間) 、並發會話數量 、口令機制。 

 

1.[root@orcl ~]# cat $ORACLE_HOME/rdbms/admin/utlpwdmg.sql      可以查看oracle提供的密碼函數腳本

 

 

2.SQL> @?/rdbms/admin/utlpwdmg.sql                  執行函數腳本

 

 

3.創建profile,大部分默認選項都是unlimited不進行限制的

CREATE PROFILE 資源文件名 LIMIT { resource_parameters | password_parameters} 創建profile用戶,並起一個資源文件名
SESSIONS_PER_USER UNLIMITED           每個用戶名並行會話數
CPU_PER_SESSION UNLIMITED          每會話可用的CPU時間,單位0.01秒 
CPU_PER_CALL UNLIMITED           一次SQL調用(解析、執行和獲取)允許的CPU時間
CONNECT_TIME UNLIMITED           會話連接時間(分鍾)
IDLE_TIME 600                   10小時連續不活動的話系統自動斷開,連接會話空閑時間(分鍾),超出將斷開
LOGICAL_READS_PER_SESSION UNLIMITED    指定一個會話允許讀的數據塊的數目,包括從內存和磁盤讀的所有數據塊

LOGICAL_READS_PER_CALL UNLIMITED     指定一次執行SQL(解析、執行和提取)調用所允許讀的數據塊的最大數目

COMPOSITE_LIMIT UNLIMITED         指定一個會話的總的資源消耗,以service units單位表示。Oracle數據庫以有利的方式計算cpu_per_session

PRIVATE_SGA UNLIMITED             指定一個會話可以在共享池(SGA)中所允許分配的最大空間,以字節為單位

FAILED_LOGIN_ATTEMPTS 10          指定鎖定用戶的登錄失敗次數為10次,超過10次則系統被自動鎖定
PASSWORD_LIFE_TIME 180           指定用戶同一密碼鎖允許使用的天數為180天
PASSWORD_REUSE_TIME UNLIMITED      密碼可重用的間隔時間(結合PASSWORD_REUSE_MAX)
PASSWORD_REUSE_MAX UNLIMITED         密碼最大改變次數(結合PASSWORD_REUSE_TIME)
PASSWORD_LOCK_TIME 1            指定用戶被鎖定天數為1天,超過試錯次數后,被鎖定的天數,默認1天
PASSWORD_GRACE_TIME 10          數據庫發出警告到登錄失效前的寬限天數
PASSWORD_VERIFY_FUNCTION verify_function_11G

腳本:

CREATE PROFILE SYSTEM_PROFILE LIMIT
SESSIONS_PER_USER UNLIMITED
CPU_PER_SESSION UNLIMITED
CPU_PER_CALL UNLIMITED
CONNECT_TIME UNLIMITED
IDLE_TIME 600
LOGICAL_READS_PER_SESSION UNLIMITED
LOGICAL_READS_PER_CALL UNLIMITED
COMPOSITE_LIMIT UNLIMITED
FAILED_LOGIN_ATTEMPTS 10
PASSWORD_LIFE_TIME 180
PASSWORD_REUSE_TIME UNLIMITED
PASSWORD_REUSE_MAX UNLIMITED
PASSWORD_GRACE_TIME 10
PASSWORD_VERIFY_FUNCTION verify_function_11G;

 

 

 

4.創建測試用戶測試一下

--創建用戶並使用自定義的配置文件
create user 用戶名 identified by 密碼 default tablespace 默認表空間名 temporary tablespace 臨時表空間名 profile 資源文件名;

SQL> create user hzh1 identified by 123 profile SYSTEM_PROFILE;          用戶密碼設置成123

 

 

 

SQL> create user hzh1 identified by 12345678 profile SYSTEM_PROFILE;      用戶密碼設置成8位

 

 

 

SQL> create user hzh1 identified by a12345678 profile SYSTEM_PROFILE;      用戶密碼設置數字加字符

 

 

僅做了一點密碼復雜度的測試,下面還可以做登錄密碼超過10次被鎖,設置系統超時不操作斷開,會話連接時間等的測試

 

參考文檔:

https://www.cnblogs.com/hong-dan/p/12162708.html    創建profile必須要有CREATE PROFILE的系統權限。為用戶指定資源限制

https://www.linuxidc.com/Linux/2017-10/147681.htm      實驗過程

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM