Oracle 密码文件与用户密码的关系
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle 密码文件与用户密码的关系相关的知识,希望对你有一定的参考价值。
今天一位同事接到一项任务是修改数据库SYS和SYSTEM用户的密码,老大在布置任务的时候还带了一句别忘了同步密码文件,于是想到了自己前几天写的一篇博客介绍Oracle密码文件的,当时只是写了如何创建密码文件,如何远程使用SYSDBA登录数据库做操作,但是并没有提到密码文件中用户的密码跟数据库中用户的密码是否有关系。
下面来测试一下,我用的平台是11.2.0.4
首先修改SYS的密码
[email protected]>alter user sys identified by zhaoxu; User altered. --由于11g里dba_user视图里的password是空值,所以选择user$视图 [email protected]>select password from user$ where name=‘SYS‘; PASSWORD ------------------------------------------------------------------------------------------ C53B64BC84353309 --建议remote_login_passwordfile需要为EXCLUSIVE [email protected]>show parameter remote_login_passwordfile NAME TYPE VALUE ------------------------------------ --------------------------------- ------------------------------ remote_login_passwordfile string EXCLUSIVE
创建一个密码文件然后测试远程登录
#创建一个与SYS用户密码相同的密码文件 [[email protected] dbs]$ cd $ORACLE_HOME/dbs [[email protected] dbs]$ orapwd file=orapworcl entries=3 password=zhaoxu [[email protected] dbs]$ ls -l orapworcl -rw-r----- 1 oracle oinstall 1536 Dec 26 21:32 orapworcl #测试连接成功 [c:\~]$ sqlplus sys/[email protected]/orcl as sysdba SQL*Plus: Release 12.1.0.1.0 Production on 星期一 12月 26 21:34:22 2016 Copyright (c) 1982, 2013, Oracle. All rights reserved. 连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> select password from user$ where name=‘SYS‘; PASSWORD ------------------------------------------------------------ C53B64BC84353309 #密码的HASH值没有变化 #创建一个与SYS密码不同的密码文件 [[email protected] dbs]$ orapwd file=orapworcl entries=3 password=luoxi force=y [[email protected] dbs]$ ls -l orapworcl -rw-r----- 1 oracle oinstall 1536 Dec 26 21:36 orapworcl #测试连接,使用原密码文件的密码登录不成功,使用新密码文件的密码登录成功,但是SYS用户的密码HASH值仍没有变 [c:\~]$ sqlplus sys/[email protected]/orcl as sysdba SQL*Plus: Release 12.1.0.1.0 Production on 星期一 12月 26 21:36:20 2016 Copyright (c) 1982, 2013, Oracle. All rights reserved. ERROR: ORA-01017: invalid username/password; logon denied [c:\~]$ sqlplus sys/[email protected]/orcl as sysdba SQL*Plus: Release 12.1.0.1.0 Production on 星期一 12月 26 21:36:30 2016 Copyright (c) 1982, 2013, Oracle. All rights reserved. 连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> select password from user$ where name=‘SYS‘; PASSWORD ------------------------------------------------------------ C53B64BC84353309
测试直接修改SYS用户密码,查看密码文件会有什么变化
#修改SYS密码成功,密码HASH值与之前不同 [email protected]>alter user sys identified by oracle; User altered. [email protected]>select password from user$ where name=‘SYS‘; PASSWORD ------------------------------------------------------------------------------------------ 8A8F025737A9097A #查看密码文件,在修改SYS密码时密码文件也有更新 [[email protected] dbs]$ ls -l orapworcl -rw-r----- 1 oracle oinstall 1536 Dec 26 21:39 orapworcl #测试远程登录,使用luoxi密码已不能登录数据库,但修改的SYS密码可以登录数据库 [c:\~]$ sqlplus sys/[email protected]/orcl as sysdba SQL*Plus: Release 12.1.0.1.0 Production on 星期一 12月 26 21:41:50 2016 Copyright (c) 1982, 2013, Oracle. All rights reserved. ERROR: ORA-01017: invalid username/password; logon denied [c:\~]$ sqlplus sys/[email protected]/orcl as sysdba SQL*Plus: Release 12.1.0.1.0 Production on 星期一 12月 26 21:41:58 2016 Copyright (c) 1982, 2013, Oracle. All rights reserved. 连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL>
总结一下:修改SYS密码时,会同时修改密码文件中的密码,保持一致;如果是手工创建的密码文件,密码文件中的密码可以与SYS密码相同也可以不同,都不影响远程登录。不过还是建议全SYS密码与密码文件中的密码一致,以免需要急用远程登录时密码反而不对,造成维护上的问题。
查询MOS上也有相关的文档:Password or SYS Doesn‘t Match the Hash Value in USER$ (文档 ID 2139304.1)
本文出自 “DBA Fighting!” 博客,请务必保留此出处http://hbxztc.blog.51cto.com/1587495/1886333
以上是关于Oracle 密码文件与用户密码的关系的主要内容,如果未能解决你的问题,请参考以下文章