找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

2932

积分

0

好友

408

主题
发表于 昨天 17:22 | 查看: 1| 回复: 0

ORAPWD 是 Oracle 数据库提供的一个实用程序,其主要功能是创建和维护用于数据库身份验证的密码文件。对于需要进行 SYSDBA、SYSOPER 等特权身份连接的数据数据库来说,密码文件是至关重要的组件。理解其命令语法和参数,是每一位 DBA 必备的基础技能。

ORAPWD 命令语法

ORAPWD 命令的基本语法结构如下,其中包含了一系列可选或必需的参数:

orapwd FILE=filename
[FORCE={y|n}]
[ASM={y|n}]
[DBUNIQUENAME=dbname]
[FORMAT={12.2|12}]
[SYS={y|n|password|external('sys-external-name')|global('sys-directory-DN')}]
[SYSBACKUP={y|n|password|external('sysbackup-external-name')|global('sysbackup-directory-DN')}]
[SYSDG={y|n|password|external('sysdg-external-name')|global('sysdg-directory-DN')}]
[SYSKM={y|n|password|external('syskm-external-name')|global('syskm-directory-DN')}]
[DELETE={y|n}]
[INPUT_FILE=input-fname]

查看密码文件属性

除了创建,orapwd 命令还可以用于描述现有密码文件的属性,包括其 FORMAT 值。命令格式非常简单:

orapwd DESCRIBE FILE=filename

实战应用示例

光看语法可能有些抽象,下面我们通过几个具体的场景来看看如何使用这些命令。

示例1:在 Oracle ASM 磁盘组中创建密码文件

如果你使用 Oracle ASM 作为存储,那么密码文件也可以存放在 ASM 磁盘组中。以下命令创建了一个名为 orapworcl、格式为 12.2 的数据库密码文件,并将其存放在 +DATA 磁盘组中。注意,当文件位于 ASM 时,DBUNIQUENAME 参数是必须指定的。

orapwd FILE='+DATA/orcl/orapworcl' DBUNIQUENAME='orcl' FORMAT=12.2

示例2:重置 SYS 用户的密码

有时我们需要重置 SYS 管理用户的密码。这可以通过 orapwd 命令来完成。请注意,此操作会生成一个新的密码文件并替换旧的,因此必须使用 FORCE=y 参数。

orapwd FILE='/u01/oracle/dbs/orapworcl' SYS=Y INPUT_FILE='/u01/oracle/dbs/orapworcl' FORCE=y

密码文件更改后的生效步骤

如果你更改了数据库密码文件的位置或名称,仅执行 orapwd 命令是不够的。你还需要在数据库中执行以下命令,以刷新元数据缓存,使新密码文件生效:

ALTER SYSTEM FLUSH PASSWORDFILE_METADATA_CACHE;

在 Oracle RAC 环境中,此命令会清除所有节点上的缓存。不过,变更可能需要一点时间才能在所有 RAC 实例中完全生效。

执行完刷新命令后,如何确认更改是否成功呢?你可以通过查询 V$PASSWORDFILE_INFO 视图来进行验证。为了获得更好的显示效果,可以预先设置一下格式:

set lin 200;
col FILE_NAME format a60;
select * from V$PASSWORDFILE_INFO;

查看密码文件中的特权用户

想了解当前有哪些用户被授予了 SYSDBA 等管理权限?V$PWFILE_USERS 视图提供了这些信息。直接查询可以获取所有列:

select * from V$PWFILE_USERS;

如果你只想关注用户名、权限状态和账户状态等关键信息,可以使用更精确的查询语句:

col USERNAME format a30;
select USERNAME,SYSDBA,SYSOPER,SYSASM,SYSBACKUP,SYSDG,SYSKM,ACCOUNT_STATUS,LOCK_DATE from V$PWFILE_USERS;

这个视图对于日常权限审计和故障排查非常有帮助,能让你一目了然地掌握数据库特权用户的构成。

熟练掌握 ORAPWD 工具的使用,是保障 Oracle 数据库管理员身份验证安全与顺畅的第一步。希望本文的梳理和示例能帮助你更好地理解和运用这个重要的 DBA 工具。如果你在实践中遇到了其他有趣的问题或技巧,欢迎在 云栈社区 与其他开发者一起交流探讨。




上一篇:深入解析Java代理模式:JDK与CGLib动态代理实战核心区别
下一篇:国产AI芯片真武810E发布,性能比肩英伟达H20
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-1-31 01:59 , Processed in 0.274931 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表