您的位置:首页 > 数据库 > Oracle

oracle 11g的ORA-28001 处理

2012-12-18 13:59 405 查看
收到一个监控用户无法连接数据库的告警,Oracle提示错误消息ORA-28001:
the password has expired,上去查看用户状态竟然是expired,获取用户基本信息脚本如下:

connect / as sysdba;
col username for a16
col password for a18
col user_id for 999999
col account_status heading 'Account|Status' for a20
col default_tablespace heading 'Default|Tablespace' for a25
col temporary_tablespace heading 'Temporary|Tablespace' for a12
set lines 125
set pages 100
select username,user_id,password,account_status,default_tablespace,temporary_tablespace,to_char(created,'yyyy-mm-dd hh24:mi:ss') created
from dba_users
order by username;

这是Oracle11G的一个新特性, Oracle11G创建用户时缺省密码过期限制是180天,如果超过180天用户密码未做修改则该用户无法登录。
查看PROFILE设置
select * from dba_profiles where profile='DEFAULT' and resource_name='PASSWORD_LIFE_TIME';

DEFAULT PASSWORD_LIFE_TIME PASSWORD 180

处理逻辑,将用户密码修改并判断是否需要这个策略

ALTER
USER 用户名 IDENTIFIED BY 密码 ;

语句进行修改密码,密码修改后该用户可正常连接数据库。
如果需要修改策略

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED

语句将口令有效期默认值180天修改成“无限制”。

From:http://space.itpub.net/22503721/viewspace-708223
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: