Oracle 密码文件与用户密码的关系

首先修改SYS的密码
sys@ORCL>alter user sys identified by zhaoxu;
 
User altered.
--由于11g里dba_user视图里的password是空值,所以选择user$视图
sys@ORCL>select password from user$ where name='SYS';
 
PASSWORD
------------------------------------------------------------------------------------------
C53B64BC84353309
--建议remote_login_passwordfile需要为EXCLUSIVE
sys@ORCL>show parameter remote_login_passwordfile
 
NAME                    TYPE                VALUE
------------------------------------ --------------------------------- ------------------------------
remote_login_passwordfile        string                  EXCLUSIVE

创建一个密码文件然后测试远程登录
#创建一个与SYS用户密码相同的密码文件
[oracle@rhel6 dbs]$ cd $ORACLE_HOME/dbs
[oracle@rhel6 dbs]$ orapwd file=orapworcl entries=3 password=zhaoxu
[oracle@rhel6 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密码不同的密码文件
[oracle@rhel6 dbs]$ orapwd file=orapworcl entries=3 password=luoxi force=y
[oracle@rhel6 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值与之前不同
sys@ORCL>alter user sys identified by oracle;
 
User altered.
 
sys@ORCL>select password from user$ where name='SYS';
 
PASSWORD
------------------------------------------------------------------------------------------
8A8F025737A9097A
#查看密码文件,在修改SYS密码时密码文件也有更新
[oracle@rhel6 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)

猜你喜欢

转载自www.linuxidc.com/Linux/2017-01/139045.htm