重建共享(db或asm)密码文件 in Oracle 19c RAC-20220209

重建共享(db或asm)密码文件 in Oracle 19c RAC-20220209

导读:Oracle 19C Rac 中db和asm的密码文件均共享在asm的共享磁盘组中,记录一下重建共享密码文件的方法。

1.重建共享db密码文件

创建用户并授予管理权限,看看重建password file对哪些管理权限有影响
grant sysdba to doudou;
create user t1_sysoper identified by oracle;
grant sysoper to t1_sysoper;
create user t3_SYSBACKUP identified by oracle;
grant SYSBACKUP to t3_SYSBACKUP;
create user t4_SYSDG identified by oracle;
grant SYSDG to t4_SYSDG;
create user t5_SYSKM identified by oracle;
grant  SYSKM to t5_SYSKM;
# sysasm权限是属于asm实例等超级权限,故databsae instance不允许分配
create user t2_SYSASM identified by oracle;
grant SYSASM to t2_SYSASM;
ERROR at line 1:
ORA-15294: SYSASM privilege not allowed on database instance

1.1 用户管理权限一览

select username,sysdba,sysoper,sysasm,sysbackup,sysdg,syskm from v$pwfile_users;
USERNAME    SYSDBA       SYSOPER    SYSASM     SYSBACKUP  SYSDG      SYSKM
--------------- ---------- ---------- ---------- ---------- ---------- ----------
SYS        TRUE       TRUE       FALSE     FALSE        FALSE      FALSE
DOUDOU        TRUE       FALSE      FALSE     FALSE        FALSE      FALSE
T3_SYSBACKUP    FALSE       FALSE      FALSE     TRUE        FALSE      FALSE
T4_SYSDG    FALSE       FALSE      FALSE     FALSE        TRUE       FALSE
T5_SYSKM    FALSE       FALSE      FALSE     FALSE        FALSE      TRUE

1.2 查看database配置信息,并了解db password file位置

[oracle@rac1:/home/oracle]$srvctl config database -d racdb
Database unique name: racdb
Database name: racdb
Oracle home: /u01/app/oracle/product/19.0.0/db_1
Oracle user: oracle
Spfile: +DATA/RACDB/PARAMETERFILE/spfile.272.1092525369 <=db parameter file location
Password file: +DATA/RACDB/PASSWORD/pwdracdb.257.1092523663 <=db passwd file location
Domain: 
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: 
Disk Groups: DATA,ARCH
Mount point paths: 
Services: 
Type: RAC
Start concurrency: 
Stop concurrency: 
OSDBA group: dba
OSOPER group: oper
Database instances: racdb1,racdb2,racdb3
Configured nodes: rac1,rac2,rac3
CSS critical: no
CPU count: 0
Memory target: 0
Maximum memory: 0
Default network number for database services: 
Database is administrator managed

1.3 修改前备份

ASMCMD> pwcopy +DATA/RACDB/PASSWORD/pwdracdb.257.1092523663 /tmp/pwdracdb_20220209.bk
copying +DATA/RACDB/PASSWORD/pwdracdb.257.1092523663 -> /tmp/pwdracdb_20220209.bk

1.4 rac环境重建共享db密码文件

RAC
[oracle@rac1:/home/oracle]$orapwd file=+data dbuniquename=racdb  password=oracle format=12 force=y
# format=12 以12c格式命令密码的安全性
单实例
orapwd file=orapwdracdb passsword=oracle format=12

1.5 验证密码文件是否修改成功

[oracle@rac1:/home/oracle]$srvctl config database -d racdb
Database unique name: racdb
Database name: racdb
......
Password file: +DATA/RACDB/PASSWORD/pwdracdb.274.1113430875  <=修改完成,修改前是pwdracdb.257.1092523663

1.6 password file含有特权用户的密码,重建之后特权用户密码消失(dg维护时特别注意修改passwrod file带来的副作用)

select username,sysdba,sysoper,sysasm,sysbackup,sysdg,syskm from v$pwfile_users;
USERNAME               SYSDBA      SYSOPER    SYSASM    SYSBACKUP  SYSDG      SYSKM
------------------------------ ---------- ---------- ---------- ---------- ---------- ----------
SYS                   TRUE      TRUE         FALSE    FALSE       FALSE      FALSE

2.重建共享asm密码文件

参考:

Doc ID:2717306.1

Doc ID:1929673.1

2.1 查看当前用户权限

ASMCMD> lspwusr 
        Username sysdba sysoper sysasm 
             SYS   TRUE    TRUE   TRUE 
CRSUSER__ASM_001   TRUE   FALSE   TRUE 
         ASMSNMP   TRUE   FALSE  FALSE 
      ORACLE_001   TRUE   FALSE  FALSE

2.2 查看CRS中asm实例密码文件的位置

[grid@rac1:/home/grid]$srvctl config asm 
ASM home: 
Password file: +OCR/orapwASM  <=asm password file
Backup of Password file: +OCR/orapwASM_backup
ASM listener: LISTENER
ASM instance count: 3
Cluster ASM listener: ASMNET1LSNR_ASM

2.3 查看CRS中asm实例密码文件真实文件

ASMCMD> ls -l orapwasm  
Type      Redund  Striped  Time         Sys  Name
PASSWORD  HIGH    COARSE   DEC 27 2021  N    orapwasm => +OCR/ASM/PASSWORD/pwdasm.256.1092419551

2.3 修改前备份

ASMCMD> pwcopy +OCR/orapwASM /tmp/orapwasm_20220209.bk
copying +OCR/orapwASM -> /tmp/orapwasm_20220209.bk

2.4 rac环境重建共享asm密码文件

[grid@rac1:/home/grid]$orapwd file='+OCR/orapwASM' asm=y force=y
Enter password for SYS:
# asm=y 表示修改是asm密码文件,并对密码有复杂度有强制安全性要求

2.5 验证asm密码文件是否修改成功

ASMCMD> ls -l orapwasm
Type      Redund  Striped  Time             Sys  Name
PASSWORD  HIGH    COARSE   AUG 22 23:00:00  N    orapwasm => +OCR/ASM/PASSWORD/pwdasm.256.1113433437 <=修改成功,修改前是pwdasm.256.1092419551

2.6 ASM password file同样含有特权用户的密码,重建之后特权用户密码消失

ASMCMD> lspwusr
Username sysdba sysoper sysasm 
     SYS   TRUE    TRUE  FALSE 
--以下是消失的用户
CRSUSER__ASM_001   TRUE   FALSE   TRUE 
         ASMSNMP   TRUE   FALSE  FALSE 
      ORACLE_001   TRUE   FALSE  FALSE

2.7 创建用户并授权相应的权限

create user CRSUSER__ASM_001 identified by oracle;
create user ASMSNMP identified by oracle;
create user ORACLE_001 identified by oracle;
grant sysdba,sysasm to CRSUSER__ASM_001;
grant sysdba to ASMSNMP;
grant sysdba to ORACLE_001;
[grid@rac1:/home/grid]$asmcmd
ASMCMD> lspwusr
        Username sysdba sysoper sysasm 
             SYS   TRUE    TRUE  FALSE 
CRSUSER__ASM_001   TRUE   FALSE   TRUE 
         ASMSNMP   TRUE   FALSE  FALSE 
      ORACLE_001   TRUE   FALSE  FALSE


请使用浏览器的分享功能分享到微信等