今天訪問(wèn)應(yīng)用的時(shí)候,發(fā)現(xiàn)賬號(hào)被鎖定,登錄oracle后,發(fā)現(xiàn)很多用戶都被鎖定了??聪绿崾拘畔?,原來(lái)是密碼過(guò)期了導(dǎo)致賬號(hào)被鎖定。這里記錄下這幾個(gè)操作的常用命令,以方便以后自己的使用。
專業(yè)成都網(wǎng)站建設(shè)公司,做排名好的好網(wǎng)站,排在同行前面,為您帶來(lái)客戶和效益!成都創(chuàng)新互聯(lián)公司為您提供成都網(wǎng)站建設(shè),五站合一網(wǎng)站設(shè)計(jì)制作,服務(wù)好的網(wǎng)站設(shè)計(jì)公司,做網(wǎng)站、網(wǎng)站制作負(fù)責(zé)任的成都網(wǎng)站制作公司!
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天修改成“無(wú)限制”(修改之后不需要重啟動(dòng)數(shù)據(jù)庫(kù),會(huì)立即生效)
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
4.對(duì)已經(jīng)鎖定和過(guò)期的賬號(hào)進(jìn)行解鎖
(1)alter user 用戶名 identified by 原來(lái)的密碼 account unlock; ----不用換新密碼,用戶名和密碼也不用加引號(hào),這個(gè)命令會(huì)解鎖賬號(hào),同時(shí)取消密碼過(guò)期。
(2)alter user 用戶名 account unlock; ----這個(gè)只會(huì)解鎖賬號(hào),而不會(huì)取消密碼過(guò)期,所以建議使用上面的口令
1、首先以DBA的身份登錄Oracle10g。
2、修改SOCCT賬戶權(quán)限,"alteruserscottaccountunlock;"
3、修改HR賬戶權(quán)限,"alteruserhraccountunlock;"?在commit操作之后,繼續(xù):"alteruserhridentifiedbyhr;"
4、然后檢查狀態(tài),就會(huì)發(fā)現(xiàn)已經(jīng)解鎖了。
一些ORACLE中的進(jìn)程被殺掉后,狀態(tài)被置為"killed",但是鎖定的資源很長(zhǎng)時(shí)間不釋放,有時(shí)實(shí)在沒(méi)辦法,只好重啟數(shù)據(jù)庫(kù)?,F(xiàn)在提供一種方法解決這種問(wèn)題,那就是在ORACLE中殺不掉的,在OS一級(jí)再殺。\x0d\x0a1.下面的語(yǔ)句用來(lái)查詢哪些對(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.下面的語(yǔ)句用來(lái)殺死一個(gè)進(jìn)程:\x0d\x0aaltersystemkillsession'24,111';(其中24,111分別是上面查詢出的sid,serial#)\x0d\x0a【注】以上兩步,可以通過(guò)Oracle的管理控制臺(tái)來(lái)執(zhí)行。\x0d\x0a3.如果利用上面的命令殺死一個(gè)進(jìn)程后,進(jìn)程狀態(tài)被置為"killed",但是鎖定的資源很長(zhǎng)時(shí)間沒(méi)有被釋放,那么可以在os一級(jí)再殺死相應(yīng)的進(jìn)程(線程),首先執(zhí)行下面的語(yǔ)句獲得進(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í)行命令,語(yǔ)法為:\x0d\x0aorakillsidthread\x0d\x0a其中:\x0d\x0asid:表示要?dú)⑺赖倪M(jìn)程屬于的實(shí)例名\x0d\x0athread:是要?dú)⒌舻木€程號(hào),即第3步查詢出的spid。\x0d\x0a例:c:orakillorcl12345
這兩個(gè)操作都需要用sysdba身份去修改,方法如下:\x0d\x0a1、win+R,輸入cmd,回車。\x0d\x0a\x0d\x0a2、以sysdba身份連接oracle的sqlplus。\x0d\x0a\x0d\x0asqlplus /nolog\x0d\x0aconn / as sysdba\x0d\x0a\x0d\x0a3、解鎖語(yǔ)句用:\x0d\x0aalter user 用戶名 account unlock;\x0d\x0a\x0d\x0a4、修改口令語(yǔ)句用:\x0d\x0aalter user 用戶名 identified by 密碼;
1、找到并進(jìn)入運(yùn)行窗口:(可以用windows+r快捷鍵哦)輸入sqlplus命令:如圖
2、進(jìn)入新窗口后使用scott/tiger用戶和密碼進(jìn)行登錄會(huì)發(fā)現(xiàn)登錄不成功:如圖
3、這時(shí)我們可以使用system用戶進(jìn)行登錄,應(yīng)為此用戶的權(quán)限排第二,并且密碼我們已經(jīng)在安裝時(shí)輸入了了,所以是可以登錄進(jìn)入的:如圖
4、system登錄成功之后就可以使用命令給用戶進(jìn)行解鎖了:如圖
5、最后再用scott/tiger用戶時(shí),你可以神奇的發(fā)現(xiàn)此時(shí)能連接成功了:如圖