今天看到了一個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 實驗過程