ITPub博客

首页 > Linux操作系统 > Linux操作系统 > RAC环境中的密码文件

RAC环境中的密码文件

原创 Linux操作系统 作者:yangtingkun 时间:2007-06-08 00:00:00 0 删除 编辑

RAC环境中多个节点的密码文件应该保证一致,否则在以DBA权限登陆数据库的时候可能造成问题。


在客户端的SQLPLUS上执行下面的操作:

SQL> CONN SYS@TESTRAC1 AS SYSDBA输入口令: ****已连接。
SQL> CREATE USER YANGTK IDENTIFIED BY YANGTK;

用户已创建。

SQL> GRANT DBA, SYSDBA TO YANGTK;

授权成功。

SQL> CONN YANGTK/YANGTK@TESTRAC1 AS SYSDBA已连接。
SQL> CONN YANGTK/YANGTK@TESTRAC2 AS SYSDBA
ERROR:
ORA-01031: insufficient privileges

警告: 您不再连接到 ORACLE

可以看到,授权SYSDBA的操作在实例TESTRAC1上执行,因此用户和密码被添加到节点1上的密码文件中,而这个操作没有在节点2上进行,因此,使用这个用户无法以SYSDBA权限登陆数据库。

必须在节点2的实例TESTRAC2上也进行同样的授权,确保密码文件进行了相同的修改:

SQL> CONN SYS@TESTRAC2 AS SYSDBA输入口令: ****已连接。
SQL> GRANT SYSDBA TO YANGTK;

授权成功。

SQL> CONN YANGTK/YANGTK@TESTRAC2 AS SYSDBA已连接。

同样的道理还适用于密码的修改:

SQL> SELECT INSTANCE_NAME FROM V$INSTANCE;

INSTANCE_NAME
----------------
testrac2

SQL> ALTER USER YANGTK IDENTIFIED BY YTK;

用户已更改。

SQL> CONN YANGTK/YTK@TESTRAC2 AS SYSDBA已连接。
SQL> CONN YANGTK/YTK@TESTRAC1 AS SYSDBA
ERROR:
ORA-01017: invalid username/password; logon denied

警告: 您不再连接到 ORACLE
SQL> CONN YANGTK/YANGTK@TESTRAC1 AS SYSDBA
已连接。

例子已经足以说明问题了,这里就不再重复了。

对于RAC环境,在授权、撤销SYSDBASYSOPER权限的时候以及修改拥有SYSDBASYSOPER权限的用户密码的时候,应该在每个实例上分别进行,否则会造成密码的不一致。

当然,对于基于裸设备的RAC环境,也可以在RAC环境建立的过程中,通过MAPFILE指定用户的密码文件到裸设备上。这样,每个$ORACLE_HOME/dbs目录下的密码文件实际上就是连接,指向裸设备上的密码文件:

bash-3.00$ cd $ORACLE_HOME/dbs
bash-3.00$ ls -l orapwtradedb1
lrwxrwxrwx 1 oracle oinstall 35 Apr 18 15:25 orapwtradedb1 -> /dev/vx/rdsk/datadg/tradedb_pwdfile

如果采用了这种方法,那么就可以避免多次修改密码问题的。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/4227/viewspace-69303/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
暂无介绍

注册时间:2007-12-29

  • 博文量
    1954
  • 访问量
    10888428