Oracle设置账号密码永不过期的方法(账号Profile的使用)

2022-07-29 719点热度 0人点赞 0条评论

问题描述

出于安全考虑,Oracle下的新建的用户是有有效期限制的,过了有效期,账号就会被lock锁住(例如报错:ORA-28002: the password will expire within 7 days),如果真有一些情况(例如测试环境)是不需要设定有效期呢?

问题解决

Oracle给用户是分Profile的,所以密码策略也是根据profile来启用的。

先来查一下某个用户的Profile:

-- 查看某个用户所在的Profile
select username, profile, account_status from dba_users where username = 'SOME_USER';

SOME_USER DEFAULT EXPIRED & LOCKED

可以看到SOME-USER的Profile是DEFAULT,已被锁定。

为了不影响其他的Profile,我们可以新增一个Profile,指定特定的密码策略(例如密码永不过期)

-- 新增一个profile,密码不过期
create profile TEST_PROFILE limit password_verify_function null;

-- 或者修改原来的profile,改成密码不过期
ALTER PROFILE "DEFAULT" LIMIT PASSWORD_VERIFY_FUNCTION NULL;

已经创建过profile,可是使用如下命令查看已经存在的profile

-- 查看已经存在的profiles
select * from dba_profiles;

-- 指定查找profile
select * from dba_profiles where profile='TEST_PROFILE';

然后把现有的user account指定这个profile:

alter user SOME_USER profile TEST_PROFILE account unlock;

-- 可能还需要修改一下密码(新密码可以设置成和原密码一样),才能让已经锁定的账户解锁
ALTER USER SOME_USER IDENTIFIED BY some-password;

 

admin

这个人很懒,什么都没留下

文章评论

您需要 登录 之后才可以评论