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

oracle 用户密码提示过期——ORA-28002: 7 天之后口令将过期

2016-08-08 17:42 531 查看
借鉴:
http://www.cr173.com/html/37043_1.html
http://blog.csdn.net/dbagaoshou/article/details/8128213

原因:oracle11g中默认在default概要文件中设置了"PASSWORD_LIFE_TIME=180”所导致,oracle用户的密码必须在180天内更改,或则启动数据库的时候会提示连接失败.
1、查看用户的proifle是哪个,一般是default:
sql>SELECT username,PROFILE FROM dba_users;
2、查看指定概要文件(如default)的密码有效期设置:
sql>SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';
(如果这样写有可能提示“你未选中行”,其实这样就行了
SELECT * FROM dba_profiles WHERE resource_name='PASSWORD_LIFE_TIME';
我的就是这样)
3、将密码有效期由默认的180天修改成“无限制”:
sql>ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
如需更改为有限制的,如60天:
SQL>alter profile default limit PASSWORD_LIFE_TIME 60 ;
修改之后不需要重启动数据库,会立即生效。
4. 重置密码
alter user daxiong identified by daxiong;

另外的思路
查看用户所属的 profile ,一般为DEFAULT
SQL>select * from dba_profiles where resource_type='PASSWORD';

取消密码管理:
SQL>alter profile DEFAULT limit unlimited;
如:
SQL>alter profile DEFAULT limit password_reuse_time unlimited;
停止密码检验函数:
SQL>alter profile DEFAULT limit password_verify_function null;
创建 用户 专用 profile:
CREATE PROFILE test LIMIT
SESSIONS_PER_USER UNLIMITED
CPU_PER_SESSION UNLIMITED
CPU_PER_CALL 3000
CONNECT_TIME 45
LOGICAL_READS_PER_SESSION DEFAULT
LOGICAL_READS_PER_CALL 1000
PRIVATE_SGA 15K
COMPOSITE_LIMIT 5000000;
如需更改:
SQL>alter profile test limit PASSWORD_LIFE_TIME 60 ;
更改用户profile

其他相关参数:
select * from dba_profiles where profile='DEFAULT' and RESOURCE_NAME like 'PASSWORD%';
1 DEFAULT PASSWORD_LIFE_TIME PASSWORD 180
2 DEFAULT PASSWORD_REUSE_TIME PASSWORD UNLIMITED
3 DEFAULT PASSWORD_REUSE_MAX PASSWORD UNLIMITED
4 DEFAULT PASSWORD_VERIFY_FUNCTION PASSWORD NULL
5 DEFAULT PASSWORD_LOCK_TIME PASSWORD 1
6 DEFAULT PASSWORD_GRACE_TIME PASSWORD 7
FAILED_LOGIN_ATTEMPTS 整数
设定登录到Oracle 数据库时可以失败的次数。一旦某用户尝试登录数据库的达到该值时,该用户的帐户就被锁定,只能由DBA能解锁。
PASSWORD_LIFE_TIME
设定口令的有效时间(天数),一旦超过这一时间,必须重新设口令。缺省为180天(11g,10gUNLIMITED).
PASSWORD_REUSE_TIME
许多系统不许用户重新启用过去用过的口令。该资源项设定了一个失效口令要经过多少天,用户才可以重新使用该口令。缺省为UNLIMITED.
PASSWORD_REUSE_MAX
重新启用一个先前用过的口令前必须对该口令进行重新设置的次数(重复用的次数)。
PASSWORD_LOCK_TIME
设定帐户被锁定的天数(当登录失败达到FAILED_LOGIN_ATTEMPTS时)。
PASSWORD_GRACE_TIME
设定在口令失效前,给予的重新设该口令的宽限天。当口令失效之后回,在登录时会出现警告信息显示该天数。如果没有在宽限天内修改口令,口令将失效。
PASSWORD_VERITY_FUNCTION
该资源项允许调用一个PL/SQL 来验证口令。Oracle公司已提供该应用 的脚本,但是只要愿意的话,用户可以制定自己的验证脚本。该参数的设定就是PL/SQL函数的名称。缺省为NULL.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  oracle