自定義密碼驗證函式
在Oracle中可以很方便的自定義密碼驗證函式,用來檢驗使用者的新密碼是否符合安全標準。
下面是一個最簡單的自定義驗證函式的例子:
SQL> CONN / AS SYSDBA
已連線。
SQL> CREATE OR REPLACE FUNCTION F_MY_VERIFY
2 (P_USERNAME IN VARCHAR2, P_PASSWORD IN VARCHAR2, P_OLD_PASSWORD IN VARCHAR2)
3 RETURN BOOLEAN AS
4 BEGIN
5 IF P_PASSWORD = P_OLD_PASSWORD THEN
6 RAISE_APPLICATION_ERROR(-20001, 'NEW PASSWORD SAME AS OLD PASSWORD.');
7 END IF;
8
9 IF P_PASSWORD = P_USERNAME THEN
10 RAISE_APPLICATION_ERROR(-20002, 'PASSWORD SAME AS USERNAME.');
11 END IF;
12
13 IF INSTR(P_PASSWORD, P_OLD_PASSWORD, 1) > 0 OR INSTR(P_OLD_PASSWORD, P_PASSWORD, 1) > 0 THEN
14 RAISE_APPLICATION_ERROR(-20003, 'NEW PASSWORD AND OLD PASSWORD ARE LIKE EACH OTHER.');
15 END IF;
16
17 IF INSTR(P_PASSWORD, P_USERNAME, 1) > 0 OR INSTR(P_USERNAME, P_PASSWORD, 1) > 0 THEN
18 RAISE_APPLICATION_ERROR(-20004, 'PASSWORD AND USERNAME ARE LIKE EACH OTHER.');
19 END IF;
20
21 IF LENGTH(P_PASSWORD) < 6 THEN
22 RAISE_APPLICATION_ERROR(-20005, 'PASSWORD TOO SHORT.');
23 END IF;
24
25 RETURN TRUE;
26 END;
27 /
函式已建立。
將當前的驗證函式設定為DEFAULT策略的驗證函式:
SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_VERIFY_FUNCTION F_MY_VERIFY;
配置檔案已更改
最後檢驗一下驗證函式是否正常工作:
SQL> CONN U1/P_U1
已連線。
SQL> ALTER USER U1 IDENTIFIED BY P_U1 REPLACE P_U1;
ALTER USER U1 IDENTIFIED BY P_U1 REPLACE P_U1
*
第 1 行出現錯誤:
ORA-28007: 無法重新使用口令
SQL> ALTER USER U1 IDENTIFIED BY U1 REPLACE P_U1;
ALTER USER U1 IDENTIFIED BY U1 REPLACE P_U1
*
第 1 行出現錯誤:
ORA-28003: 指定口令的口令驗證失敗
ORA-20002: PASSWORD SAME AS USERNAME.
SQL> ALTER USER U1 IDENTIFIED BY P_U123 REPLACE P_U1;
ALTER USER U1 IDENTIFIED BY P_U123 REPLACE P_U1
*
第 1 行出現錯誤:
ORA-28003: 指定口令的口令驗證失敗
ORA-20003: NEW PASSWORD AND OLD PASSWORD ARE LIKE EACH OTHER.
SQL> ALTER USER U1 IDENTIFIED BY PASS_U1 REPLACE P_U1;
ALTER USER U1 IDENTIFIED BY PASS_U1 REPLACE P_U1
*
第 1 行出現錯誤:
ORA-28003: 指定口令的口令驗證失敗
ORA-20004: PASSWORD AND USERNAME ARE LIKE EACH OTHER.
SQL> ALTER USER U1 IDENTIFIED BY 12345 REPLACE P_U1;
ALTER USER U1 IDENTIFIED BY 12345 REPLACE P_U1
*
第 1 行出現錯誤:
ORA-00988: 口令缺失或無效
SQL> ALTER USER U1 IDENTIFIED BY "12345" REPLACE P_U1;
ALTER USER U1 IDENTIFIED BY "12345" REPLACE P_U1
*
第 1 行出現錯誤:
ORA-28003: 指定口令的口令驗證失敗
ORA-20005: PASSWORD TOO SHORT.
SQL> ALTER USER U1 IDENTIFIED BY NEW_COMPLICATE_PASSWORD REPLACE P_U1;
使用者已更改。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28258625/viewspace-2146190/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ORACLE 密碼驗證函式Oracle密碼函式
- 【Laravel】 自定義配置你的密碼驗證規則Laravel密碼
- [Laravel] 自定義配置你的密碼驗證規則Laravel密碼
- Laravel 自定義表單驗證-自定義驗證規則Laravel
- Android自定義View---驗證碼AndroidView
- shell自定義函式函式
- Oracle 自定義函式Oracle函式
- perl自定義函式函式
- 強密碼驗證正規表示式密碼
- 密碼檢驗函式verify_function密碼函式Function
- Hive常用函式及自定義函式Hive函式
- Android自定義方形驗證碼輸入框Android
- Layui 自定義表單驗證UI
- MVC驗證02-自定義驗證規則、郵件驗證MVC
- hive 3.0.0自定義函式Hive函式
- Hive中自定義函式Hive函式
- MySQL建立自定義函式MySql函式
- python 自定義函式Python函式
- oracle 自定義聚合函式Oracle函式
- mysql自定義函式篇MySql函式
- Oracle中自定義函式Oracle函式
- 一個自定義函式函式
- Oracle自定義聚集函式Oracle函式
- ORACLE 自定義函式BUG?Oracle函式
- SQL SERVER 自定義函式SQLServer函式
- SQL 自定義函式FUNCTIONSQL函式Function
- MVC驗證07-自定義Model級別驗證MVC
- MVC驗證04-自定義驗證規則、日期範圍驗證MVC
- 自定義react資料驗證元件React元件
- CAS自定義登入驗證方法
- mongoose使用validate驗證, 獲取自定義驗證資訊Go
- PHP 自定義函式用法及常用函式集合PHP函式
- java自定義equals函式和hashCode函式Java函式
- mysql 自定義分析函式 least 及 日期函式MySql函式AST
- laravel 自定義全域性函式Laravel函式
- Laravel 自定義函式存放位置Laravel函式
- Laravel 新增自定義助手函式Laravel函式
- Laravel自定義輔助函式Laravel函式