共计 1380 个字符,预计需要花费 4 分钟才能阅读完成。
如果 Oracle 密码过期已经过期了,首先需要修改密码,然后设置密码为无限期。修改以 sys 用户登陆。
修改密码:alter user username identified by password 密码可以和之前的密码相同也可以不同。
修改数据库密码为无限期:
Oracle 的密码过期规则是用 Profile 来管理的,系统默认只有一个 Profile(DEFAULT),该 profile 的密码过期规则为 180 天。当超出这个时间时,密码就会过期,数据库不能连接。Oracle11g 启动参数 resource_limit 无论设置为 false 还是 true,密码有效期都是生效的。
有两种处理方式:
一、直接修改用户对应的 Profile 的密码
1、查看用户的 proifle 是哪个,一般是 default:
select username,PROFILE FROM dba_users;
2、查看指定概要文件(如 default)的密码有效期设置:
select * FROM dba_profiles s Where s.profile=’DEFAULT’ AND resource_name=’PASSWORD_LIFE_TIME’;
3、将密码有效期由默认的 180 天修改成“无限制”:
alter PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
修改之后不需要重启动数据库,会立即生效。
二、新建一个 Profile 文件,设置其密码,并设置其为当前用户的 Profile 文件
1、新建 profile “PASSWD_UNLIMIT”,规则与 DEFAULT 一致(因为一个 profile 中包含很多的项目,我们此时只想修改过期规则,其他的不变)
2、修改 profile “PASSWD_UNLIMIT”,修改过期规则为 UNLIMITED
3、将 ’MESSERIES’ 用户适用新的 profile “PASSWD_UNLIMIT”
1: SELECT * FROM dba_profiles s WHERE s.profile=’DEFAULT’ AND resource_name=’PASSWORD_LIFE_TIME’;
2: SELECT * FROM dba_profiles s ;
3: – 查看用户 profile
4: select username, user_id, account_status,expiry_date, profile from dba_users where username = username;
5: –1. 创建新的 profile(PASSWD_UNLIMIT)复制 DEFAULT 的 Script
6: CREATE PROFILE “PASSWD_UNLIMIT” LIMIT
7: SESSIONS_PER_USER UNLIMITED
8: CPU_PER_SESSION UNLIMITED
9: CPU_PER_CALL UNLIMITED
10: CONNECT_TIME UNLIMITED
11: IDLE_TIME UNLIMITED
12: LOGICAL_READS_PER_SESSION UNLIMITED
13: LOGICAL_READS_PER_CALL UNLIMITED
更多 Oracle 相关信息见 Oracle 专题页面 https://www.linuxidc.com/topicnews.aspx?tid=12