Oracle 有关ADG同步sysdba权限的问题

起因:
RAC-RAC DG 12c rac.

你好 oracle 12c rac 主库用户权限为sysdba
同步过去的备库用户无sysdba权限(该用户已同步)
涉及SQL:
select sysdba from V$PWFILE_USERS where USERNAME=‘C##DBRA’;
no row select

询问创建用户以及授权语句如下:
create user c##dbra identified by dbra;
grant connect,resource,dba to c##dbra container=all;
grant sysdba to c##dbra container=all;

分析:

1.检查主备同步情况,主备正常同步,主库创建用户备库正常同步创建.
2.观察权限,将权限进行拆分进行测试.

首先测试connect,resource权限:
主库创建c##dbra1用户:
create user c##dbra1 identified by dbra;
备库c##dbra1用户同步创建:
SQL> select username from dba_users where username='C##DBRA1';
USERNAME
--------------------------------------------------------------------------------
C##DBRA1

在备库连接c##dbra1用户.
conn c##dbra1/dbra
(因为该用户属于新建用户,不具备connect权限,因为是无法连接的,所以连接失败)

在主库赋予c##dbra1用户connect,resource权限
grant connect,resource to c##dbra1 container=all;

在备库再次尝试连接c##dbra1
conn c##dbra1/dbra
成功连接。

根据以上测试可以确定,权限同步没有问题.
其次对sysdba权限再次进行测试

create user c##dbra2 identified by dbra;
grant sysdba to c##dbra2 container=all;

主库:
select sysdba from V$PWFILE_USERS where USERNAME='C##DBRA2';
SYSDB
-----
TRUE

备库:
select sysdba from V$PWFILE_USERS where USERNAME='C##DBRA2';
no row select

那么问题就出现在sysdba权限上.

原因定位:
给某个用户赋予sysdba权限后,会将该用户记录到密码文件和v p w f i l e u s e r s 中 v pwfile_users中 v pwfileusersvpwfile_users也是通过读取密码文件获取.
备库无法将sysdba权限同步到密码文件中.所以会出现以上情况.

解决办法:
从主库重新同步一份密码文件到备库,问题即可解决.在12c中是具备密码文件自动同步的特性.但是不知道为何没有生效.

12c密码文件自动同步特性:
在这里插入图片描述

集群同步密码文件方式:
Oracle RAC密码文件管理

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值