windows下面如果采用了OS认证,就不需要输入internal的密码,但是安全起见还是使用密码文件认证比较好,我把它写成了一个批处理文件,修改密码只需要修改NEWPWD变量的值,然后执行一下即可。
说明:
NONEFILE:该文件包含了SQLNET.AUTHENTICATION_SERVICES=(NONE)这一行文字
NTSFILE : 该文件包含了SQLNET.AUTHENTICATION_SERVICES=(NTS)这一行文字
批处理内容如下所示:
updateinternalpwd.bat
@echo off
set ORACLE_SID=satest
set ORACLE_HOME=e:/oracle/ora81
set path=e:/oracle/ora81/bin;%PATH%
set NEWPWD=qq12345
set NONEFILE=E:/oracle/ora81/network/ADMIN/sqlnet2.ora
set NTSFILE=E:/oracle/ora81/network/ADMIN/sqlnet1.ora
set DESTFILE=E:/oracle/ora81/network/ADMIN/sqlnet.ora
set PWDFILE=PWD%ORACLE_SID%.ora
set TTFILE=E:/Oracle/dbascripts/updatepwd.tmp
copy %NTSFILE% %DESTFILE%
echo Stop Database ,please wait...
echo connect internal > %TTFILE%
echo shutdown immediate >> %TTFILE%
echo exit >> %TTFILE%
type %TTFILE% |svrmgrl
echo Renew the password,please wait...
del %PWDFILE%
orapwd file=%PWDFILE% password=%NEWPWD% entries=10
copy %NONEFILE% %DESTFILE%
echo Start Database,please wait...
echo connect internal/%NEWPWD% > %TTFILE%
echo startup >> %TTFILE%
echo exit >> %TTFILE%
type %TTFILE% |svrmgrl
del %TTFILE%
echo Action End!
pause

