一直在使用Oracle数据库,各种语句、注意一大堆,一不留神就沾染上了连接错误。
最近,碰到的需要注意的地方,就是每隔一段时间需要更新启用新的用户密码,否则连接错误,提示也很明显,总不过是密码过期的意思。
但是工作中,因为没有专门的数据库维护,所以密码神马的,总是用一个。所以,想要避免这种麻烦。需要用SQL语句修改Oracle的参数。
更新密码:alter user system identified by sa;
其中system是用户名称,sa是用户密码,可以启用新的密码,也可以保持原有密码。
修改密码保护周期:alter profile default limit password_life_time unlimited;
这样,可以无限期的使用同一个密码,一般在DBA权限下修改。
11g oracle 用户密码过期问题
Oracle 11g 之前默认的用户时是没有密码过期的限制的,在Oracle 11g 中默认的profile启用了密码过期时间是180天。如下:
select * from dba_profiles where profile='DEFAULT' and resource_name='PASSWORD_LIFE_TIME';
过期的密码可用alter user userXXX identified by xxx;解决,可以修改为和以前一样。
如果想设置密码不过期,可用管理员登陆,然后执行:
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
即可。
其他相关参数:
select * from dba_profiles where profile='DEFAULT' and RESOURCE_NAME like 'PASSWORD%';
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 11g 用户密码180天过期解决方法
alter profile default limit password_life_time unlimited;
select * dba_profiles where profile=‘DEFAULT’ and resource-name=‘PASSWORD_LlFE_TIME’;
oracle 11g 180天密码
查询密码过期时间
select * from dba_profiles where profile='DEFAULT' and resource_name='PASSWORD_LIFE_TIME';
设置密码用不过期
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
重置密码
alter user ccc identified by ddd;