在使用Oracle過各中經常會遇到密碼丟失的時候,本文用兩種試來解決這個問題。

一種方法:

sqlplus "/ as sysdba"
            SQL>startup
            SQL>alter user system identified by root123;

如果sqlplus "/ as sysdba"不能進入,讓輸入密碼,我輸入原始密碼和修改的密碼后都不行的話,修改unix環境下:

1. $ORACLE_HOME\network\admin\SQLNET.ORA中為:

SQLNET.AUTHENTICATION_SERVICES=(NTS)

重起數據庫/監聽服務,就可以用操作系統認證sqlplus "/ as sysdba"了,來進入你的數據庫,從而輕而易舉的搞定你的數據庫了。

2.

sqlplus /nolog
            sql>connect /as sysdba

第二種方法:

詳細步驟如下:

一:查詢視圖V$PWFILE_USERS:select * from V$PWFILE_USERS;記錄下擁有 SYSOPER/SYSDBA系統權限的用戶信息。

二:關閉數據庫 shutdown immediate。

三:刪除密碼文件,文件路徑一般為:ORACLE_HOME\DATABASE,文件名為PWD.ORA。

四:創建密碼文件:

ORAPWD FILE=< FILENAME > PASSWORD =< PASSWORD >

五:向密碼文件中增加用戶:

CONNECT SYS/internal_user_passsword AS SYSDBA;

啟動數據庫實例并打開數據庫; 創建相應用戶帳號,對其授權授予 權限:GRANT SYSDBA TO user_name(如果先前數據庫只有sys具有sysdba權限,可不做這步)。

六:修改密碼文件狀態,默認密碼文件的狀態shared,要將初始化參數里的REMOTE_LOGIN_PASSWORDFILE 設置成EXCLUSIVE。(T006)