oracle数据库密码过期解决方案

本文记录了在Oracle数据库中修改用户密码并设置密码有效期为无限制的操作过程。包括使用SQL*Plus工具连接数据库、查看默认配置文件中的密码有效期设置、修改密码有效期为无限制等步骤。

修改密码并设置密码期限为无限制

报错:ora-28001 口令已经失效

 

Microsoft Windows [版本 6.1.7601]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。

C:\Users\Administrator>sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on 星期一 6月 9 16:56:34 2014

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

SQL>
SQL> conn sys/password@orcl as sysdba
已连接。
SQL> select username from dba_users;

USERNAME
------------------------------
YLCW
SCOTT
ORACLE_OCM
XS$NULL
MDDATA
DIP
APEX_PUBLIC_USER
SPATIAL_CSW_ADMIN_USR

USERNAME
------------------------------
SPATIAL_WFS_ADMIN_USR
DBSNMP
SYSMAN
FLOWS_FILES
MDSYS
ORDSYS
EXFSYS
WMSYS
APPQOSSYS
APEX_030200
OWBSYS_AUDIT

USERNAME
------------------------------
ORDDATA
CTXSYS
ANONYMOUS
XDB
ORDPLUGINS
OWBSYS
SI_INFORMTN_SCHEMA
OLAPSYS
MGMT_VIEW
SYS
SYSTEM

USERNAME
------------------------------
OUTLN

已选择34行。

SQL> ALTER USER YLCW  IDENTIFIED BY 123456 ;

用户已更改。

SQL> SELECT * FROM dba_profiles WHERE profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME' ;

PROFILE                        RESOURCE_NAME                    RESOURCE
------------------------------ -------------------------------- --------
LIMIT
----------------------------------------
DEFAULT                        PASSWORD_LIFE_TIME               PASSWORD
180


SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED ;

配置文件已更改

SQL> SELECT * FROM dba_profiles WHERE profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';

PROFILE                        RESOURCE_NAME                    RESOURCE
------------------------------ -------------------------------- --------
LIMIT
----------------------------------------
DEFAULT                        PASSWORD_LIFE_TIME               PASSWORD
UNLIMITED

 

<think>嗯,用户想重置Oracle数据库过期密码。这个问题在Oracle数据库管理中很常见,特别是升级后账户状态容易变成EXPIRED。用户可能是个DBA或者系统管理员,正在处理数据库升级后的账户问题,语气比较着急。 从技术角度看,需要分两种情况处理:普通账户和特权账户(SYS/SYSTEM)。普通账户直接用ALTER USER命令就行,但特权账户涉及密码文件操作,更复杂些。用户引用的文档[^1][^2]正好提到升级时账户过期密码文件设置的问题,说明用户可能遇到了升级后的典型情况。 特别要注意的是,如果用户设置了REMOTE_LOGIN_PASSWORDFILE=SHARED,在12.2以上版本会报错,这里需要重点说明解决方案。引用[^2]提到的两种修正方式(禁用或改为EXCLUSIVE)应该包含在回答里。 操作步骤需要清晰分层:先普通账户后特权账户,每个步骤都要包含具体命令和参数说明。比如重置密码时强调IDENTIFIED BY子句是必需的,而密码复杂度要求取决于SEC_CASE_SENSITIVE_LOGON参数的状态。 最后的安全建议部分也很重要,提醒用户定期检查账户状态、设置密码复杂度策略,这些是预防措施。用户可能没意识到可以开启审计功能来监控密码变更操作,引用[^4]正好提到审计日志级别调整,值得补充。 相关问题设计成阶梯状比较合理:从基础操作(如何检查状态)到进阶问题(密码文件迁移、审计配置),最后是安全策略(复杂度要求),这样能覆盖用户后续可能的需求延伸。</think>在Oracle数据库中重置过期密码的操作步骤如下(区分普通用户和特权用户): ### 一、普通用户密码重置 ```sql -- 检查过期账户 SELECT username, account_status FROM dba_users WHERE account_status LIKE 'EXPIRED%'; -- 重置密码并解锁(示例用户:scott) ALTER USER scott IDENTIFIED BY <新密码> ACCOUNT UNLOCK; ``` > 📌 注意:`<新密码>`需符合数据库密码复杂度策略 ### 二、特权用户密码重置(SYS/SYSTEM等) 当特权账户过期且无法本地登录时: 1. **通过SQL*Plus重置** ```bash sqlplus / as sysdba ALTER USER system IDENTIFIED BY <新密码>; ``` 2. **密码文件修复(当报错ORA-01999)** ```bash # 备份原密码文件 cp $ORACLE_HOME/dbs/orapw$ORACLE_SID /tmp/ # 重建密码文件 orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID \ password=<新密码> \ entries=10 force=y ``` ### 三、关键参数验证 ```sql SHOW PARAMETER remote_login_passwordfile; ``` - 若值为`SHARED`(Oracle 12.2+会触发警告[^2]): - 选项1:禁用密码文件认证(需重启) ```sql ALTER SYSTEM SET remote_login_passwordfile=NONE SCOPE=spfile; ``` - 选项2:改为独占模式(推荐) ```sql ALTER SYSTEM SET remote_login_passwordfile=EXCLUSIVE SCOPE=spfile; ``` ### 四、操作后验证 ```sql CONNECT system/<新密码> SELECT * FROM v$pwfile_users; -- 检查特权用户状态 ``` ### 🔒 安全建议 1. 定期检查账户状态: ```sql SELECT username, expiry_date FROM dba_users; ``` 2. 启用密码生命周期策略: ```sql ALTER PROFILE default LIMIT PASSWORD_LIFE_TIME 90; ``` 3. 审计关键操作: ```sql AUDIT ALTER USER BY ACCESS; -- 跟踪密码变更[^4] ``` > ⚠️ 重要提示:生产环境操作前务必备份数据库密码文件!重置后需验证所有依赖该账户的应用连接。 --- ### 相关问题 1. 如何批量重置多个过期Oracle账户密码? 2. Oracle密码文件损坏时如何恢复SYSDBA权限? 3. 什么是Oracle Profile的密码复杂度策略?如何配置? 4. 如何通过审计追踪数据库中的密码变更操作[^4]? 5. 升级Oracle 19c时如何处理遗留的过期账户问题[^1]? [^1]: 升级到Oracle 19c时,未重置密码的默认账户将保持EXPIRED状态 [^2]: 当`REMOTE_LOGIN_PASSWORDFILE=SHARED`时需迁移密码文件或修改参数 [^4]: 可通过调整审计级别记录密码变更操作
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值