建立使用者時的密碼校驗問題
今天需要在測試環境中做一些效能測試,為了不影響原有的資料,準備建立一個臨時的schema。但是建立的時候報瞭如下的錯誤。
SQL> create user mig_perf identified by mig_perf;
create user mig_perf identified by mig_perf
*
ERROR at line 1:
ORA-28003: password verification for the specified password failed
ORA-20002: Password same as or similar to user
第一感覺就是開啟了密碼的校驗,11g裡面有一個新特性的關於密碼的大小寫敏感的,會不會有關聯呢。似乎有些牽強,但是目前是false選項,表示不對大小寫敏感。
SQL> show parameter sen
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
sec_case_sensitive_logon boolean FALSE
如果還有問題,就需要從profie的角度入手了,比如登入密碼超過10次,賬戶就會鎖定,這些都是在profile裡面配置的。
來看看能得到什麼資訊。
select *from dba_profiles order by profile;
SQL> /
PROFILE RESOURCE_NAME RESOURCE LIMIT
------------------------------ -------------------------------- -------- ----------------------------------------
DBAMON_PF1 COMPOSITE_LIMIT KERNEL UNLIMITED
DBAMON_PF1 SESSIONS_PER_USER KERNEL 10
DBAMON_PF1 CPU_PER_SESSION KERNEL UNLIMITED
DBAMON_PF1 CPU_PER_CALL KERNEL UNLIMITED
DBAMON_PF1 LOGICAL_READS_PER_SESSION KERNEL UNLIMITED
DBAMON_PF1 LOGICAL_READS_PER_CALL KERNEL UNLIMITED
DBAMON_PF1 IDLE_TIME KERNEL UNLIMITED
DBAMON_PF1 CONNECT_TIME KERNEL UNLIMITED
DBAMON_PF1 PRIVATE_SGA KERNEL DEFAULT
DBAMON_PF1 FAILED_LOGIN_ATTEMPTS PASSWORD 10
DBAMON_PF1 PASSWORD_LIFE_TIME PASSWORD UNLIMITED
DBAMON_PF1 PASSWORD_REUSE_TIME PASSWORD UNLIMITED
DBAMON_PF1 PASSWORD_REUSE_MAX PASSWORD UNLIMITED
DBAMON_PF1 PASSWORD_VERIFY_FUNCTION PASSWORD VERIFY_FUNCTION
DBAMON_PF1 PASSWORD_LOCK_TIME PASSWORD .0106
DBAMON_PF1 PASSWORD_GRACE_TIME PASSWORD UNLIMITED
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 VERIFY_FUNCTION_11G
DEFAULT PASSWORD_LOCK_TIME PASSWORD 1
DEFAULT PASSWORD_GRACE_TIME PASSWORD 7
我建立的新使用者,沒有指定profile,所以會是預設的default profile,對應的"PASSWORD_VERIFY_FUNCTION" 有一些差別。
看來是對於密碼安全的加強,來看看相關的簡單測試,看看密碼驗證還都做了那些校驗。
SQL> create user mig_perf identified by mig_perf1;
create user mig_perf identified by mig_perf1
*
ERROR at line 1:
ORA-28003: password verification for the specified password failed
ORA-20005: Password same as or similar to user name
SQL> create user mig_perf identified by abc;
create user mig_perf identified by abc
*
ERROR at line 1:
ORA-28003: password verification for the specified password failed
ORA-20001: Password length less than 8
SQL> create user mig_perf identified by abcabc12;
User created.
SQL> drop user mig_perf;
User dropped.
當然了“PASSWORD VERIFY_FUNCTION_11G”其實是一個function來實現的。具體的細節可以在$ORACLE_HOME/rdbms/admin/utlpwdmg.sql中檢視。
> ls -lrt utlpwd*
-rw-r--r-- 1 oraccbs1 dba 11555 Aug 13 2006 utlpwdmg.sql
-- This script sets the default password resource parameters
-- This script needs to be run to enable the password features.
-- However the default resource parameters can be changed based
-- on the need.
-- A default password complexity function is also provided.
-- This function makes the minimum complexity checks like
-- the minimum length of the password, password not same as the
-- username, etc. The user may enhance this function according to
-- the need.
-- This function must be created in SYS schema.
-- connect sys/ as sysdba before running the script
CREATE OR REPLACE FUNCTION verify_function_11G
(username varchar2,
password varchar2,
old_password varchar2)
RETURN boolean IS
n boolean;
m integer;
differ integer;
isdigit boolean;
ischar boolean;
ispunct boolean;
db_name varchar2(40);
digitarray varchar2(20);
punctarray varchar2(25);
chararray varchar2(52);
i_char varchar2(10);
simple_password varchar2(10);
reverse_user varchar2(32);
BEGIN
digitarray:= '0123456789';
chararray:= 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
。。。。
而且在11g的資料字典裡也有所體現,可以看到如下的使用者密碼是10g,11g的
在dba_users中有一列 password_version
******************************************************************************************************
* General Details *
******************************************************************************************************
USERNAME Default Tablespace CREATED PROFILE PASSWORD_V
------------------------- -------------------- --------- ---------- ----------
MIG_PERF DATAS01 31-MAR-14 DEFAULT 10G 11G
一些相關的連結如下:
How To Enforce Mixed Case Passwords When sec_case_sensitive_logon = true? (Doc ID 1307555.1)
ORA-603 ORA-604 ORA-1001 ORA-28003 when PASSWORD_VERIFY_FUNCTION Returns FALSE (Doc ID 1264842.1) --這是一個11.2.0.2以前的bug
ORA-28003 Error When Use 'Password Complexity Verification' (Doc ID 132096.1) --alter user identified by 錯誤的WA
SQL> create user mig_perf identified by mig_perf;
create user mig_perf identified by mig_perf
*
ERROR at line 1:
ORA-28003: password verification for the specified password failed
ORA-20002: Password same as or similar to user
第一感覺就是開啟了密碼的校驗,11g裡面有一個新特性的關於密碼的大小寫敏感的,會不會有關聯呢。似乎有些牽強,但是目前是false選項,表示不對大小寫敏感。
SQL> show parameter sen
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
sec_case_sensitive_logon boolean FALSE
如果還有問題,就需要從profie的角度入手了,比如登入密碼超過10次,賬戶就會鎖定,這些都是在profile裡面配置的。
來看看能得到什麼資訊。
select *from dba_profiles order by profile;
SQL> /
PROFILE RESOURCE_NAME RESOURCE LIMIT
------------------------------ -------------------------------- -------- ----------------------------------------
DBAMON_PF1 COMPOSITE_LIMIT KERNEL UNLIMITED
DBAMON_PF1 SESSIONS_PER_USER KERNEL 10
DBAMON_PF1 CPU_PER_SESSION KERNEL UNLIMITED
DBAMON_PF1 CPU_PER_CALL KERNEL UNLIMITED
DBAMON_PF1 LOGICAL_READS_PER_SESSION KERNEL UNLIMITED
DBAMON_PF1 LOGICAL_READS_PER_CALL KERNEL UNLIMITED
DBAMON_PF1 IDLE_TIME KERNEL UNLIMITED
DBAMON_PF1 CONNECT_TIME KERNEL UNLIMITED
DBAMON_PF1 PRIVATE_SGA KERNEL DEFAULT
DBAMON_PF1 FAILED_LOGIN_ATTEMPTS PASSWORD 10
DBAMON_PF1 PASSWORD_LIFE_TIME PASSWORD UNLIMITED
DBAMON_PF1 PASSWORD_REUSE_TIME PASSWORD UNLIMITED
DBAMON_PF1 PASSWORD_REUSE_MAX PASSWORD UNLIMITED
DBAMON_PF1 PASSWORD_VERIFY_FUNCTION PASSWORD VERIFY_FUNCTION
DBAMON_PF1 PASSWORD_LOCK_TIME PASSWORD .0106
DBAMON_PF1 PASSWORD_GRACE_TIME PASSWORD UNLIMITED
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 VERIFY_FUNCTION_11G
DEFAULT PASSWORD_LOCK_TIME PASSWORD 1
DEFAULT PASSWORD_GRACE_TIME PASSWORD 7
我建立的新使用者,沒有指定profile,所以會是預設的default profile,對應的"PASSWORD_VERIFY_FUNCTION" 有一些差別。
看來是對於密碼安全的加強,來看看相關的簡單測試,看看密碼驗證還都做了那些校驗。
SQL> create user mig_perf identified by mig_perf1;
create user mig_perf identified by mig_perf1
*
ERROR at line 1:
ORA-28003: password verification for the specified password failed
ORA-20005: Password same as or similar to user name
SQL> create user mig_perf identified by abc;
create user mig_perf identified by abc
*
ERROR at line 1:
ORA-28003: password verification for the specified password failed
ORA-20001: Password length less than 8
SQL> create user mig_perf identified by abcabc12;
User created.
SQL> drop user mig_perf;
User dropped.
當然了“PASSWORD VERIFY_FUNCTION_11G”其實是一個function來實現的。具體的細節可以在$ORACLE_HOME/rdbms/admin/utlpwdmg.sql中檢視。
> ls -lrt utlpwd*
-rw-r--r-- 1 oraccbs1 dba 11555 Aug 13 2006 utlpwdmg.sql
-- This script sets the default password resource parameters
-- This script needs to be run to enable the password features.
-- However the default resource parameters can be changed based
-- on the need.
-- A default password complexity function is also provided.
-- This function makes the minimum complexity checks like
-- the minimum length of the password, password not same as the
-- username, etc. The user may enhance this function according to
-- the need.
-- This function must be created in SYS schema.
-- connect sys/
CREATE OR REPLACE FUNCTION verify_function_11G
(username varchar2,
password varchar2,
old_password varchar2)
RETURN boolean IS
n boolean;
m integer;
differ integer;
isdigit boolean;
ischar boolean;
ispunct boolean;
db_name varchar2(40);
digitarray varchar2(20);
punctarray varchar2(25);
chararray varchar2(52);
i_char varchar2(10);
simple_password varchar2(10);
reverse_user varchar2(32);
BEGIN
digitarray:= '0123456789';
chararray:= 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
。。。。
而且在11g的資料字典裡也有所體現,可以看到如下的使用者密碼是10g,11g的
在dba_users中有一列 password_version
******************************************************************************************************
* General Details *
******************************************************************************************************
USERNAME Default Tablespace CREATED PROFILE PASSWORD_V
------------------------- -------------------- --------- ---------- ----------
MIG_PERF DATAS01 31-MAR-14 DEFAULT 10G 11G
一些相關的連結如下:
How To Enforce Mixed Case Passwords When sec_case_sensitive_logon = true? (Doc ID 1307555.1)
ORA-603 ORA-604 ORA-1001 ORA-28003 when PASSWORD_VERIFY_FUNCTION Returns FALSE (Doc ID 1264842.1) --這是一個11.2.0.2以前的bug
ORA-28003 Error When Use 'Password Complexity Verification' (Doc ID 132096.1) --alter user identified by 錯誤的WA
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8494287/viewspace-1347097/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 加密的藝術:密文的建立和校驗加密
- 用Servlet校驗密碼2Servlet密碼
- 用Servlet進行使用者名稱和密碼校驗Servlet密碼
- 寫一個密碼生成器,並同時寫一個密碼強度校驗的方法密碼
- 【PB案例學習筆記】-03使用者名稱密碼校驗筆記密碼
- javascript表單賬戶密碼校驗提交JavaScript密碼
- Javascript校驗密碼複雜度的正規表示式JavaScript密碼複雜度
- 前端使用bcrypt對密碼加密,伺服器對密碼進行校驗前端密碼加密伺服器
- linux建立使用者並設定密碼Linux密碼
- 開發網校原始碼時應該注意的幾個問題原始碼
- 時間序列的ADF校驗(單位根校驗)
- 關於FileDownloader檔案長度校驗的問題
- 密碼找回功能可能存在的問題密碼
- CRC(迴圈冗餘校驗)和CBC(密碼塊鏈)密碼
- 10G密碼版本使用者無法登陸問題密碼
- laravel修改使用者模組的密碼驗證Laravel密碼
- 安裝Oracle RAC時,不能驗證ASMSNMP密碼問題的解決(ORA-01031或ORA-01017)OracleASM密碼
- 當我問表單校驗的面試題時,我期望得到什麼樣的答案面試題
- MySQL建立使用者,配置許可權、密碼策略MySql密碼
- python 建立密碼Python密碼
- 遇到的編碼問題、時區問題整理
- 校驗碼&糾錯碼
- 關於登入(使用者名稱,密碼,驗證碼)密碼
- 解決訪問共享印表機提示“使用者賬戶限制,不允許空密碼”的問題密碼
- JQuery表單驗證(包括:使用者名稱,手機號,密碼,確認密碼,驗證碼60s)jQuery密碼
- 密碼找回功能可能存在的問題(補充)密碼
- Linux建立使用者、設定密碼、修改使用者、刪除使用者命令Linux密碼
- ORACLE 11g的密碼錯誤延時驗證Oracle密碼
- mongodb對資料庫建立使用者名稱和密碼MongoDB資料庫密碼
- git push要輸入密碼問題Git密碼
- teams 更改密碼後無法登入,提示使用 Microsoft Authenticator 驗證問題密碼ROS
- Mysql修改密碼之後,Navicat依然使用舊密碼連線問題MySql密碼
- 關於原始碼防洩密的本質問題原始碼
- visual studio建立專案時需要注意的問題
- 三種常用校驗碼
- 校驗碼圖片生成
- MySQL的Root使用者密碼MySql密碼
- 無密碼身份驗證如何保障使用者隱私安全?密碼
- 【問題處理】升級12c之後,10G密碼版本使用者無法登陸問題密碼