重建共享(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