現在用oracle11g,可是過段時間用戶就被鎖了郁悶了很久,后來在網上查詢知道,原來oracle有登錄失敗次數failed_login_attempts限制,超過指定的次數后就會自動鎖了
解決方法:
修改參數failed_login_attempts=unlimited;
SQL>sqlplus /nolog
SQL>conn sys/sys as sysdba;
一、解鎖:
SQL>alter user username account unlock;
SQL>commit;
二、修改登錄失敗次數限制:
1. 查詢failed_login_attempts參數默認值:(備注:9i環境中此參數的值為unlimited)
SQL>conn /as sysdba
Connected.
SQL> desc dba_profiles;
名稱 是否為空 類型
----------------------------------------- -------- --------------
PROFILE NOT NULL VARCHAR2(30)
RESOURCE_NAME NOT NULL VARCHAR2(32)
RESOURCE_TYPE VARCHAR2(8)
LIMIT VARCHAR2(40)
SQL> select resource_name,limit from dba_profiles where resource_name='FAILED_LOGIN_ATTEMPTS';
RESOURCE_NAME LIMIT
-------------------------------- ----------------------------------------
FAILED_LOGIN_ATTEMPTS 10
查詢FAILED_LOGIN_ATTEMPTS值為10,也就是說從第一次登錄失敗開始計算,連續登陸失敗的次數。而不是累計失敗的次數
2.修改FAILED_LOGIN_ATTEMPTS的值
SQL> alter profile default limit failed_login_attempts unlimited;
配置文件已更改
SQL> select resource_name,limit from dba_profiles where resource_name='FAILED_LO
GIN_ATTEMPTS';
RESOURCE_NAME LIMIT
-------------------------------- ----------------------------------------
FAILED_LOGIN_ATTEMPTS UNLIMITED
可以用 select NAME,LCOUNT from user$語句來查詢當前失敗的次數。user$為視圖dba_users的基表,通常可以查詢一下視圖對應的基表,oracle可能會隱藏一些參數。