ORA-28000錯誤心得分享

    這個毛病特別稀奇,用戶好端端的就登陸不上!根據提示 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$的信息非常有用!!

   



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章