Linux操作系统,当我们忘记SYS用户名密码又无法通过操作系统验证方式访问数据库时,就需要考虑使用密码验证方式找回SYS用户的密码。
本文给出这种方法的实践。
1.确保remote_login_passwordfile参数值为“EXCLUSIVE”或“SHARED”
sys@ora10g> show parameter remote_login
NAME TYPE VALUE
--------------------------- -------------------- ------------
remote_login_passwordfile string EXCLUSIVE
2.禁止操作系统验证方式
1)备份sqlnet.ora文件
ora10g@secdb /oracle/ora10gR2/product/10.2.0/db_2/network/admin$ cp sqlnet.ora sqlnet.ora_backup
2)在文件中添加如下内容
ora10g@secdb /oracle/ora10gR2/product/10.2.0/db_2/network/admin$ vi sqlnet.ora
# sqlnet.ora Network Configuration File: /oracle/ora10gR2/product/10.2.0/db_2/network/admin/sqlnet.ora
# Generated by Oracle configuration tools.
NAMES.DIRECTORY_PATH= (TNSNAMES)
sqlnet.authentication_services=(none)
~
~
3)验证操作系统验证方式已经被禁用
ora10g@secdb /oracle/ora10gR2/product/10.2.0/db_2/network/admin$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Fri Apr 29 21:06:33 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
ERROR:
ORA-01031: insufficient privileges
Enter user-name:
此时提示权限不足表明操作系统认证方式已经被成功禁用。
3.备份密码文件
1)进入到密码文件目录
ora10g@secdb /home/oracle$ cd $ORACLE_HOME/dbs
2)备份原有的密码文件
ora10g@secdb /oracle/ora10gR2/product/10.2.0/db_2/dbs$ cp orapwora10g orapwora10g_backup
4.重新创建新的密码文件
1)删除原有密码文件
ora10g@secdb /oracle/ora10gR2/product/10.2.0/db_2/dbs$ rm -f orapwora10g
2)使用新的密码创建密码文件
ora10g@secdb /oracle/ora10gR2/product/10.2.0/db_2/dbs$ orapwd file=orapwora10g password=secooler
5.验证新密码是否有效
ora10g@secdb /oracle/ora10gR2/product/10.2.0/db_2/dbs$ sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on Fri Apr 29 21:28:26 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
NotConnected@> connect sys as sysdba
Enter password: -- 这里输入新密码,这里是“secooler”
Connected.
sys@ora10g>
连接成功。密码初步修改成功。
6.通过v$pwfile_users视图进一步验证修改的有效性
sys@ora10g> select * from v$pwfile_users;
USERNAME SYSDB SYSOP
------------------------------ ----- -----
SYS TRUE TRUE
7.修改数据字典中关于SYS用户的密码
方法就是修改用户名密码的命令。
sys@ora10g> alter user sys identified by secooler;
User altered.
到此,整个密码修改的过程便结束了。
8.小结
Linux系统上如果可以使用操作系统验证方式登录到数据库,我们仅需在数据库中通过“alter user”语句对SYS用户修改密码即可。
使用本文中提到的方法可以在无法顺利的使用操作系统验证方法进入到数据库的前提下达到找回SYS用户密码的目的。
Good luck.
secooler
11.04.29
-- The End --
本文给出这种方法的实践。
1.确保remote_login_passwordfile参数值为“EXCLUSIVE”或“SHARED”
sys@ora10g> show parameter remote_login
NAME TYPE VALUE
--------------------------- -------------------- ------------
remote_login_passwordfile string EXCLUSIVE
2.禁止操作系统验证方式
1)备份sqlnet.ora文件
ora10g@secdb /oracle/ora10gR2/product/10.2.0/db_2/network/admin$ cp sqlnet.ora sqlnet.ora_backup
2)在文件中添加如下内容
ora10g@secdb /oracle/ora10gR2/product/10.2.0/db_2/network/admin$ vi sqlnet.ora
# sqlnet.ora Network Configuration File: /oracle/ora10gR2/product/10.2.0/db_2/network/admin/sqlnet.ora
# Generated by Oracle configuration tools.
NAMES.DIRECTORY_PATH= (TNSNAMES)
sqlnet.authentication_services=(none)
~
~
3)验证操作系统验证方式已经被禁用
ora10g@secdb /oracle/ora10gR2/product/10.2.0/db_2/network/admin$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Fri Apr 29 21:06:33 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
ERROR:
ORA-01031: insufficient privileges
Enter user-name:
此时提示权限不足表明操作系统认证方式已经被成功禁用。
3.备份密码文件
1)进入到密码文件目录
ora10g@secdb /home/oracle$ cd $ORACLE_HOME/dbs
2)备份原有的密码文件
ora10g@secdb /oracle/ora10gR2/product/10.2.0/db_2/dbs$ cp orapwora10g orapwora10g_backup
4.重新创建新的密码文件
1)删除原有密码文件
ora10g@secdb /oracle/ora10gR2/product/10.2.0/db_2/dbs$ rm -f orapwora10g
2)使用新的密码创建密码文件
ora10g@secdb /oracle/ora10gR2/product/10.2.0/db_2/dbs$ orapwd file=orapwora10g password=secooler
5.验证新密码是否有效
ora10g@secdb /oracle/ora10gR2/product/10.2.0/db_2/dbs$ sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on Fri Apr 29 21:28:26 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
NotConnected@> connect sys as sysdba
Enter password: -- 这里输入新密码,这里是“secooler”
Connected.
sys@ora10g>
连接成功。密码初步修改成功。
6.通过v$pwfile_users视图进一步验证修改的有效性
sys@ora10g> select * from v$pwfile_users;
USERNAME SYSDB SYSOP
------------------------------ ----- -----
SYS TRUE TRUE
7.修改数据字典中关于SYS用户的密码
方法就是修改用户名密码的命令。
sys@ora10g> alter user sys identified by secooler;
User altered.
到此,整个密码修改的过程便结束了。
8.小结
Linux系统上如果可以使用操作系统验证方式登录到数据库,我们仅需在数据库中通过“alter user”语句对SYS用户修改密码即可。
使用本文中提到的方法可以在无法顺利的使用操作系统验证方法进入到数据库的前提下达到找回SYS用户密码的目的。
Good luck.
secooler
11.04.29
-- The End --
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/519536/viewspace-694144/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/519536/viewspace-694144/