1. 程式人生 > >ORA-28000錯誤心得分享

ORA-28000錯誤心得分享

urn not 口令管理 host 題解 unlock 用戶 視圖 pts

這個毛病特別稀奇,用戶好端端的就登陸不上!根據提示 The account is locked 這賬戶被鎖定,啥情況,我們登陸sysdba看一看

格式:

select account_status,lock_date,profile from dba_users where username='USERNAME';

解析:

這句話查詢字段account_status(賬戶狀態),lock_date(鎖數據),profile配置文件字段,然後dba_users查看所有用戶狀態的視圖表,指定username你的賬戶名就可以看狀態

查看這個狀態的時候發現是LOCKED(TIMED),鎖(時間)以前沒見過這種狀態,我就百度了一下,系統默認配置密碼登錄(錯誤登錄)登錄10次,所以就給個時間鎖,知道了這些就好辦了,我感覺輸入10次才給鎖太不安全了!

我想把他改成3次,我們首先要知道怎麽查看這個系統默認設置,如下

格式:

select resource_name,resource_type,limit from dba_profiles where profile='DEFAULT';

解釋:

查詢資源名字,類型,限制源表是dba_profiles視圖(dba配置文件),指定default,這樣就出來了!

格式:

alter profile default limit FAILED_LOGIN_ATTEMPTS unlimit(無限次);--本人為了安全設置了3次(非生產環境下)

解釋:

翻譯英語 改變配置文件默認的限制 登錄失敗嘗試 為3次!很好理解無難度

這時候我們就可以給用戶解鎖了

格式:

alter user scott account unlock;--改變用戶scott賬戶解鎖

這時候我們在dba_users視圖查看發現已經解鎖,登錄成功,我還特意嘗試了3次失敗登錄,報錯ORA-28000看來還是很有效果!這時候問題解決希望對對大家有一些幫助

補錄:

因為我其實查看了show parameter resource,這時候我驚奇發現沒有開啟resource limit,values --> false,這裏資源顯示沒有開啟,卻10次生效,為什麽??

查閱一些資料和了解,FAILED_LOGIN_ATTEMPTS 不為受resource limit的約束,修改用alter profile是用戶口令管理,變量是資源管理,口令並不受RESOURCE LIMIT的限制,一些教材中把profile分為管理密碼與資源兩大類我也查實了。

引用網友的帖子感覺特別好 http://www.php.cn/mysql-tutorials-135104.html 比我講解詳細 思路明確 特別引用請大家參考 本人看了也有很大知識面提升

最後想查看Oracle中用戶已經登錄失敗幾次了?

格式:

select lcount from user$ where name='USERNAME';--就可以看到統計信息

格式:

SQL> audit session whenever not successful;

審計已成功。

SQL> set linesize 1000;

SQL> col userhost for a20;

SQL> col COMMENT$TEXT for a30;

SQL> col SPARE1 for a20;

SQL> col NTIMESTAMP# for a35

SQL> select sessionid,userid,userhost,comment$text,spare1,to_char(ntimestamp#+1/3,'yyyy-mm-dd hh24:mi:ss') from aud$ where returncode=1017 order by ntimestamp# desc;

user$與aud$的信息非常有用!!



ORA-28000錯誤心得分享