故障現象:
SQL> connect scott/scott
ERROR:
ORA-01017: invalid username/password; logon denied
SQL> connect scott/scott
ERROR:
ORA-28000: the account is locked
表明:Oracle 中 scott用戶因密碼不對,10次以后,就被locked。
SQL> select account_status,lock_date,profile from dba_users where username='SCOTT';
ACCOUNT_STATUS TO_CHAR(LOCK_DATE,'D PROFILE
-------------------------------- -------------------- ------------------------------
LOCKED(TIMED) 31-MAY-2004 19:33:53 DEFAULT
這樣,表明再添加oracle session時,就報錯,無法連接上去。
故障解決:
(1) 給當前用戶解鎖:
sql> alter user scott account unlock;
(2) 查看當前用戶的限制:
SQL> SELECT resource_name,resource_type,limit FROM dba_profiles WHERE profile='DEFAULT';
RESOURCE_NAME RESOURCE_TYPE LIMIT
-------------------------------- ------------- ----------------------------------------
COMPOSITE_LIMIT KERNEL UNLIMITED
SESSIONS_PER_USER KERNEL UNLIMITED
CPU_PER_SESSION KERNEL UNLIMITED
CPU_PER_CALL KERNEL UNLIMITED
LOGICAL_READS_PER_SESSION KERNEL UNLIMITED
LOGICAL_READS_PER_CALL KERNEL UNLIMITED
IDLE_TIME KERNEL UNLIMITED
CONNECT_TIME KERNEL UNLIMITED
PRIVATE_SGA KERNEL UNLIMITED
FAILED_LOGIN_ATTEMPTS PASSWORD 10
PASSWORD_LIFE_TIME PASSWORD UNLIMITED
PASSWORD_REUSE_TIME PASSWORD UNLIMITED
PASSWORD_REUSE_MAX PASSWORD UNLIMITED
PASSWORD_VERIFY_FUNCTION PASSWORD NULL
PASSWORD_LOCK_TIME PASSWORD UNLIMITED
PASSWORD_GRACE_TIME PASSWORD UNLIMITED
表明: 10次以后,就 failed_login_attempts 就報錯,鎖定用戶。
需要修改成:unlimited
sql> alter profile default limit FAILED_LOGIN_ATTEMPTS unlimited;
或修改成:次數比較大:100000
sql>alter profile default limit FAILED_LOGIN_ATTEMPTS 100000;
然后再查看資源情況:
SQL> SELECT resource_name,resource_type,limit FROM dba_profiles WHERE profile='DEFAULT';
RESOURCE_NAME RESOURCE_TYPE LIMIT
-------------------------------- ------------- ----------------------------------------
COMPOSITE_LIMIT KERNEL UNLIMITED
SESSIONS_PER_USER KERNEL UNLIMITED
CPU_PER_SESSION KERNEL UNLIMITED
CPU_PER_CALL KERNEL UNLIMITED
LOGICAL_READS_PER_SESSION KERNEL UNLIMITED
LOGICAL_READS_PER_CALL KERNEL UNLIMITED
IDLE_TIME KERNEL UNLIMITED
CONNECT_TIME KERNEL UNLIMITED
PRIVATE_SGA KERNEL UNLIMITED
FAILED_LOGIN_ATTEMPTS PASSWORD UNLIMITED
PASSWORD_LIFE_TIME PASSWORD UNLIMITED
PASSWORD_REUSE_TIME PASSWORD UNLIMITED
PASSWORD_REUSE_MAX PASSWORD UNLIMITED
PASSWORD_VERIFY_FUNCTION PASSWORD NULL
PASSWORD_LOCK_TIME PASSWORD UNLIMITED
PASSWORD_GRACE_TIME PASSWORD UNLIMITED
16 rows selected
SQL>
這樣就不會用:client端因輸入密碼錯誤,造成用戶被locked(timed)