ITPub博客

首页 > 数据库 > Oracle > RAC和Data Guard环境中修改用户密码

RAC和Data Guard环境中修改用户密码

原创 Oracle 作者:kuqlan 时间:2011-09-20 18:47:59 0 删除 编辑

RAC和Data Guard中修改用户帐号时,按照是否会修改口令文件($ORACLE_HOME/dbs/orapw$ORACLE_SID分两种情况:

1, 普通用户

普通用户在V$PWFILE_USERS中没有记录, 信息不会保存在口令文件中,

所以修改口令时,只会修改数据字典信息,而数据字典存在system表空间中,属性数据库的数据文件,而datafile在RAC中是共享的.

所以,在任何节点执行修改动作都可以, 可以立即生效

[@more@]

例如修改system用户密码,则具体步骤如下:

  • 查看V$PWFILE_USERS里有没有我们要修改的用户名,如果没有说明该用户属于普通用户,如下查询结果显示system用户不在该列表上,因此可以按普通用户方式来修改其密码;

SQL> select * from V$PWFILE_USERS;

USERNAME SYSDBA SYSOPER

------------------------------ ------ -------

SYS TRUE TRUE

ABC TRUE FALSE

SQL>

  • 通过alter user 语句修改用户密码:

SQL> alter user system identified by abc@123;

  • 测试修改后的结果(假设两个节点的RAC环境的service为rac,实例一为rac1,实例二为rac2):

[rac1]@rac-db1[/export/home/oracle]$sqlplus system/abc@123@rac1

[rac2]@rac-db2[/export/home/oracle]$sqlplus system/abc@123@rac2

[rac1]@rac-db2[/export/home/oracle]$sqlplus system/abc@123@rac

[rac2]@rac-db2[/export/home/oracle]$sqlplus system/abc@123@rac

  • 如果系统有Data Guard环境,则在备库上也要进行测试:

[rac]@dg-db[/export/home/oracle]$sqlplus system/abc@123@rac

2, 具备sysdba或sysoper系统权限的用户

我们在创建数据库之前,会要求首先为每个节点创建一个口令文件,并且口令文件中的记录项要一致(帐号名,属性,密码),缺省是指定sys帐号.

在创建数据库生成V$PWFILE_USERS时,会读取口令文件,填充到字典中

这个机制说明一个情况: 当需要修改具有sysdba/sysoper权限的用户的密码时,由于需要同时修改数据字典和本地的口令文件,

而口令文件不是共享的,而是每个节点都有一个, 所以sql需要在每个节点都执行一次才能"同步"--修改所有节点的口令文件,使密码保持一致。具体修改过程请参考本站连接:http://kuqlan.itpub.net/post/38575/522237

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

请登录后发表评论 登录
全部评论
Oracle技术爱好者,Oracle10g OCM,网名 KUQLAN ,具有7的年Oracle数据库管理实践,曾经参加过BOSS、ERP、云计算(OpenStack+kvm)等项目的一线工作。以前写博客是为了自己,而现在是为了自己和别人。因为领会了帮助别人和分享、沉淀和积累会创造快乐和价值...

注册时间:2009-01-26

  • 博文量
    183
  • 访问量
    1681000