原因:oracle輸入密碼不正確,試了10次后,會(huì)自動(dòng)鎖定用戶。
創(chuàng)新互聯(lián)公司10多年成都企業(yè)網(wǎng)站定制服務(wù);為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁設(shè)計(jì)及高端網(wǎng)站定制服務(wù),成都企業(yè)網(wǎng)站定制及推廣,對(duì)工商代辦等多個(gè)方面擁有多年建站經(jīng)驗(yàn)的網(wǎng)站建設(shè)公司。
解決方法:使用sqlplus命令行解鎖。
步驟:
1、打開sqlplus窗口,用sysdba角色登錄
2、請(qǐng)輸入用戶名: /as sysdba
3、SQLalter user GALTTEST account unlock;
? 用戶已更改。
解鎖成功啦!
今天訪問應(yīng)用的時(shí)候,發(fā)現(xiàn)賬號(hào)被鎖定,登錄oracle后,發(fā)現(xiàn)很多用戶都被鎖定了??聪绿崾拘畔?,原來是密碼過期了導(dǎo)致賬號(hào)被鎖定。這里記錄下這幾個(gè)操作的常用命令,以方便以后自己的使用。
1.查看用戶的proifle是哪個(gè),一般是default
SELECT username,PROFILE FROM dba_users;
2.查看對(duì)應(yīng)的概要文件(如default)的密碼有效期設(shè)置
SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';
3.將概要文件(如default)的密碼有效期由默認(rèn)的180天修改成“無限制”(修改之后不需要重啟動(dòng)數(shù)據(jù)庫(kù),會(huì)立即生效)
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
4.對(duì)已經(jīng)鎖定和過期的賬號(hào)進(jìn)行解鎖
(1)alter user 用戶名 identified by 原來的密碼 account unlock; ----不用換新密碼,用戶名和密碼也不用加引號(hào),這個(gè)命令會(huì)解鎖賬號(hào),同時(shí)取消密碼過期。
(2)alter user 用戶名 account unlock; ----這個(gè)只會(huì)解鎖賬號(hào),而不會(huì)取消密碼過期,所以建議使用上面的口令
一些ORACLE中的進(jìn)程被殺掉后,狀態(tài)被置為"killed",但是鎖定的資源很長(zhǎng)時(shí)間不釋放,有時(shí)實(shí)在沒辦法,只好重啟數(shù)據(jù)庫(kù)。現(xiàn)在提供一種方法解決這種問題,那就是在ORACLE中殺不掉的,在OS一級(jí)再殺。\x0d\x0a1.下面的語句用來查詢哪些對(duì)象被鎖:\x0d\x0aselectobject_name,machine,s.sid,s.serial#\x0d\x0afromv$locked_objectl,dba_objectso,v$sessions\x0d\x0awherel.object_id=o.object_idandl.session_id=s.sid;\x0d\x0a2.下面的語句用來殺死一個(gè)進(jìn)程:\x0d\x0aaltersystemkillsession'24,111';(其中24,111分別是上面查詢出的sid,serial#)\x0d\x0a【注】以上兩步,可以通過Oracle的管理控制臺(tái)來執(zhí)行。\x0d\x0a3.如果利用上面的命令殺死一個(gè)進(jìn)程后,進(jìn)程狀態(tài)被置為"killed",但是鎖定的資源很長(zhǎng)時(shí)間沒有被釋放,那么可以在os一級(jí)再殺死相應(yīng)的進(jìn)程(線程),首先執(zhí)行下面的語句獲得進(jìn)程(線程)號(hào):\x0d\x0aselectspid,osuser,s.program\x0d\x0afromv$sessions,v$processp\x0d\x0awheres.paddr=p.addrands.sid=24(24是上面的sid)\x0d\x0a4.在OS上殺死這個(gè)進(jìn)程(線程):\x0d\x0a1)在unix上,用root身份執(zhí)行命令:\x0d\x0a#kill-912345(即第3步查詢出的spid)\x0d\x0a2)在windows(unix也適用)用orakill殺死線程,orakill是oracle提供的一個(gè)可執(zhí)行命令,語法為:\x0d\x0aorakillsidthread\x0d\x0a其中:\x0d\x0asid:表示要?dú)⑺赖倪M(jìn)程屬于的實(shí)例名\x0d\x0athread:是要?dú)⒌舻木€程號(hào),即第3步查詢出的spid。\x0d\x0a例:c:orakillorcl12345
1、首先以DBA的身份登錄Oracle10g。
2、修改SOCCT賬戶權(quán)限,"alter user scott account unlock;"
3、修改HR賬戶權(quán)限,"alter user hr account unlock;" ?在commit操作之后,繼續(xù):"alter user hr identified by hr;"
4、然后檢查狀態(tài),就會(huì)發(fā)現(xiàn)已經(jīng)解鎖了。
用如下方法解鎖:
1、打開本機(jī)的命令提示符。(win鍵+R鍵輸入cmd)
2、輸入命令:sqlplus
/
as
sysdba
3、執(zhí)行:alter
user
sys
identified
by
password;
然后執(zhí)行即可。