ORA-28000錯誤心得分享
格式:
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錯誤心得分享