通过如下测试证明,在Oracle 10g中修改主库的sys用户密码,不会自动更新到备库的数据库和密码文件上。测试过程如下:
1、在主库
$sqlplus / as sysdba
SQL*Plus: Release 10.2.0.5.0 - Production on Fri Aug 12 15:59:14 2011
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
SQL> select open_mode from v$database;
OPEN_MODE
----------
READ WRITE
SQL> create user test identified by test;
User created.
SQL> select * from v$pwfile_users;
USERNAME SYSDB SYSOP
------------------------------ ----- -----
SYS TRUE TRUE
[@more@]SQL> grant connect , alter user to test;
Grant succeeded.
SQL> conn test/test
Connected.
SQL> grant select on dba_users to test;
Grant succeeded.
SQL> conn test/test
Connected.
SQL> col username format a10
SQL> col password format a30
SQL> select password , username from dba_users where username ='TEST';
PASSWORD USERNAME
------------------------------ ----------
7A0F2B316C212D67 TEST
SQL> alter user test identified by test123;
User altered.
SQL> select password , username from dba_users where username ='TEST';
PASSWORD USERNAME
------------------------------ ----------
7C029A1EC393C725 TEST
SQL> conn / as sysdba
Connected.
SQL> show user
USER is "SYS"
SQL> select * from v$pwfile_users;
USERNAME SYSDB SYSOP
---------- ----- -----
SYS TRUE TRUE
通过以上可以看出,如果没有给sysdba或sysoper权限,则用户虽然在数据库字典中密码发生变化,但是不会写到密码文件中。
SQL> grant sysdba to test;
Grant succeeded.
SQL> select * from v$pwfile_users;
USERNAME SYSDB SYSOP
---------- ----- -----
SYS TRUE TRUE
TEST TRUE FALSE
只要给予sysdba权限,才能写到密码文件中;
2、备库的查询结果如下:
$sqlplus sys/abc123@standby as sysdba
SQL*Plus: Release 10.2.0.5.0 - Production on Fri Aug 12 15:57:35 2011
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
SQL> select open_mode from v$database;
OPEN_MODE
----------
MOUNTED
SQL> select * from v$pwfile_users;
USERNAME SYSDB SYSOP
------------------------------ ----- -----
SYS TRUE TRUE
在主库给test用户授权sysdba权限前后多次执行以上命令,发现用户根本没有同步过来
3、在主库重新修改Test用户(sysdba)密码
SQL> alter user test identified by test;
User altered.
SQL> select password , username from dba_users where username ='TEST';
PASSWORD USERNAME
------------------------------ ----------
7A0F2B316C212D67 TEST
4、在备库再查询v$pwfile_users
SQL> select * from v$pwfile_users;
USERNAME SYSDB SYSOP
------------------------------ ----- -----
SYS TRUE TRUE
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/18841027/viewspace-1053771/ ,如需转载,请注明出处,否则将追究法律责任。