问题描述
出于安全考虑,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;
文章评论