本文想要解決的是Oracle 10g用戶解鎖及執行權限受限的問題,希望通過本文能讓大家了解Oracle 10g用戶解鎖有所幫助。
最近發現公司有部分現場數據庫系統存在這樣的問題:
1)用戶被鎖定,但一直無法對Oracle 10g用戶解鎖
說明:在個別現場發現一個用戶經常被鎖住,剛使用[alter user <user_name> account unlock; commit;]然後仍然無法登錄,還是一直報錯:用戶被鎖定。
解決辦法:查DBA_USERS表,可以看到用戶的狀態。是否被鎖住(變成LOCKED(TIMED)狀態了說明用戶被鎖定)。
解決:
- select * from USER_HISTORY$ --查看用戶口令是否過期
- select * from dba_profiles --查看用戶使用的profile設置
- sqlplus /nolog
- conn /as sysdba
- alter user <user_name> account unlock; --解鎖
- alter user <user_name> passWord expire; --密碼過期
- alter user <user_name> identifIEd by <passWord>; --重設密碼
或者 alter profile default limit failed_login_Attempts unlimited;
然後登錄即可
【注】若要查看任一賬戶的口令限期,可查詢DBA_USERS數據字典視圖的Expire_Date列。若用戶自己想查看,可查詢USER_USERS數據字典視圖的Expiry_Date列(通過SQL*Plus或一個基於客戶機的查詢工具)。
2)ORA-01031: insufficIEnt privileges 問題
在用sysdba登錄時一直報ORA-01031: insufficIEnt privileges錯誤
原因:操作系統使用Oracle用戶登錄,然後使用
- sqlplus /nolog
- conn /as sysdba
這需要connect 之前的那個操作系統用戶是DBA組,所以要先確定Oracle用戶是否屬於DBA組,結果發現他屬於staff組
解決:修改Oracle用戶的組屬性後,問題解決