在对Oralce数据库进行管理过程中,经常会收到错误提醒:“ORA-28001: the password has expired”,这是从Oralce 11g后新增的特性,即表示密码有过期时间,登录时密码已经过期,需要修改后才可以登录,同时本功能在Oralce11g后是默认开启的,只要密码过期就会提示“ORA-28001: the password has expired”。
一、收到该提醒后怎么解决呢?
以dba连接到Oralce。命令如下:
connect as sysdba;
按提示,输入DBA的用户名和密码。
然后通过以下命令修改用户的密码。
ALTER USER 用户名 IDENTIFIED BY 密码 ;
这样,用户就可以使用新的密码登录了。
二、如何知道哪些用户有密码过期设置呢?
以DBA登录到Oralce(connect as sysdba)。
执行SQL:
SELECT * FROM dba_profiles WHERE profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME'
即可查询。其中limit字段即为密码过期天数。
三、如何关闭密码过期提醒?
以DBA登录到Oralce(connect as sysdba)。
执行SQL:
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
这样即把密码设置为永不过期。但在生产环境中,一般是不建议设置为永不过期了。出于安全考虑,建议开启密码过期提醒。
四、使用JDBC连接Oralce时出现“java.sql.SQLException: ORA-28001: the password has expired”,怎么办?
通过Java编程,调用JDBC连接Oralce数据库,出现“java.sql.SQLException: ORA-28001: the password has expired”,也是由于密码过期引起,处理方式同上。
五、账号被锁定,怎么解锁(lock/unlock)?
以DBA登录Oracle数据库,执行SQL:
alter user XXXUSER identified by oracle account unlock;