Oracle提示错误消息 ORA-28001: the password has expired,是由于Oracle11G的新特性所致,Oracle11G创建用户时缺省密码过期限制是180天(即6个月),如果超过180天用户密码未做修改则该用户无法登录。
解决方法:
运行cmd
执行
sqlplus /nolog
此时只是登录进了SQLPLUS,并没有登录数据库
这个参数表示是不用登录(no login)的意思。
而加密码的话,就是登录到你指定的数据库实例里。
如果命令里带tnsname,就是你tnsname里配置的实力,如果灭有带tnsname,就是本地的ORACLWE_SID指定的实例。
已经登录以后再conn中止上一个用户的session,然后新开一个session,这里可以切换到别的用户登录。
使用
conn / as sysdba
命令,进入oracle数据库,如果部署了多个数据库实例,需要 在参数中增加@数据库名称
执行
SELECT * FROM dba_profiles WHERE profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';
查询密码的有效期设置,LIMIT字段是密码有效天数。在密码将要过期或已经过期时可通过如下语句进行修改密码
ALTER USER 用户名 IDENTIFIED BY 密码;
修改密码后,账户会被锁定,需要执行以下SQL语句进行解锁:
alter user 用户名 account unlock;
如果想一劳永逸去除oracle180天的口令限制可以执行以下语句
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;