select * from dba_profiles where profile='DEFAULT' and resource_type ='PASSWORD';
PROFILE RESOURCE_NAME RESOURCE LIMIT
------------------------------ -------------------------------- -------- ----------------------------------------
DEFAULT FAILED_LOGIN_ATTEMPTS PASSWORD 3
DEFAULT PASSWORD_LIFE_TIME PASSWORD 60
DEFAULT PASSWORD_REUSE_TIME PASSWORD 365
DEFAULT PASSWORD_REUSE_MAX PASSWORD 20
DEFAULT PASSWORD_VERIFY_FUNCTION PASSWORD VERIFY_FUNCTION_11G
DEFAULT PASSWORD_LOCK_TIME PASSWORD 1
DEFAULT PASSWORD_GRACE_TIME PASSWORD 3
FAILED_LOGIN_ATTEMPTS ---> 不知道口令的话尝试登录的次数,达到这个次数之后账户被自动锁定
PASSWORD_REUSE_TIME ---> 这个特性限制口令在多少天内不能重复使用
PASSWORD_REUSE_MAX ---> 这个特性是针对PASSWORD_REUSE_TIME的,说明要想在PASSWORD_REUSE_TIME这个参数指定的时间内重复使用当前口令,那么至少需要修改过口令的次数(修改过的口令当然肯定需要和当前口令不同,因为毕竟还有PASSWORD_REUSE_TIME 特性的限制)
PASSWORD_VERIFY_FUNCTION ---> 密码验证规则函数
PASSWORD_LOCK_TIME ---> 接着FAILED_LOGIN_ATTEMPTS参数,口令被自动锁定的时间,达到这个时间之后,下次登录时系统自动解除对这个账户的锁定
PASSWORD_GRACE_TIME ---> 接着PASSWORD_LIFE_TIME特性,如果PASSWORD_LIFE_TIME的期限已到,继续可以使用的天数,在这段时间内如果我们登录系统,会有提示,提示系统在几天内过期
查看密码过期策略
select * from dba_profiles s where s.profile='DEFAULT' and resource_name='PASSWORD_LIFE_TIME';
查看用户过期时间
select username,account_status,expiry_date,profile from dba_users where username='*' ;
oracle主要通过PASSWORD_REUSE_TIME和PASSWORD_REUSE_MAX这两个参数来对密码重用进行限制
select * from dba_profiles where resource_name like 'PASSWORD_REUSE_%';
调整密码限制
alter profile default limit PASSWORD_REUSE_TIME unlimited;
alter profile default limit PASSWORD_REUSE_MAX unlimited;
修改密码为原密码
SELECT name,password FROM sys.user$ WHERE name = '*';
Alter user * identified by values '密文';
Alter user * identified by '明文';
改回密码限制
alter profile default limit PASSWORD_REUSE_TIME 1800;
alter profile default limit PASSWORD_REUSE_MAX 5;