oracle11G 用户密码180天修改概要文件过程
原因
创建用户的时候不指定概要文件的默认的概要文件是default,
而默认的概要文件中的设置如下,注意斜体部分
PROFILE RESOURCE_NAME RESOURCE_TYPE LIMIT
1 DEFAULT COMPOSITE_LIMIT KERNEL UNLIMITED
2 DEFAULT SESSIONS_PER_USER KERNEL UNLIMITED
3 DEFAULT CPU_PER_SESSION KERNEL UNLIMITED
4 DEFAULT CPU_PER_CALL KERNEL UNLIMITED
5 DEFAULT LOGICAL_READS_PER_SESSION KERNEL UNLIMITED
6 DEFAULT LOGICAL_READS_PER_CALL KERNEL UNLIMITED
7 DEFAULT IDLE_TIME KERNEL UNLIMITED
8 DEFAULT CONNECT_TIME KERNEL UNLIMITED
9 DEFAULT PRIVATE_SGA KERNEL UNLIMITED
10 DEFAULT FAILED_LOGIN_ATTEMPTS PASSWORD 10
11 DEFAULT PASSWORD_LIFE_TIME PASSWORD 180
12 DEFAULT PASSWORD_REUSE_TIME PASSWORD UNLIMITED
13 DEFAULT PASSWORD_REUSE_MAX PASSWORD UNLIMITED
14 DEFAULT PASSWORD_VERIFY_FUNCTION PASSWORD NULL
15 DEFAULT PASSWORD_LOCK_TIME PASSWORD 1
16 DEFAULT PASSWORD_GRACE_TIME PASSWORD 7
当密码使用180天后密码过期后,业务进程连接数据库异常,影响业务使用。
有从7天开始倒计时的提示!
解决办法
既然是配置的概要文件有问题,那就修改概要文件问题,可以增加天数。
或者是直接让密码一致有效,如果是BS的那种层层防火墙防护的数据库
直接密码永远有效吧,看运维规则的要求。
按照如下步骤进行操作:
1、查看用户的proifle是哪个,一般是default:
sql>SELECT username,PROFILE FROM dba_users;
2、查看指定概要文件(如default)的密码有效期设置:
sql>SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';
3、将密码有效期由默认的180天修改成“无限制”:
sql>ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
修改之后不需要重启动数据库,会立即生效。
4、修改后,还没有被提示ORA-28002警告的帐户不会再碰到同样的提示;
已经被提示的帐户必须再改一次密码,举例如下:
$sqlplus / as sysdba
sql> alter user smsc identified by <原来的密码> ----不用换新密码
oracle11g启动参数resource_limit无论设置为false还是true,密码有效期都是生效的,所以必须通过以上方式进行修改。以上的帐户名请根据实际使用的帐户名更改。
5、如果已经有用户已经是lock状态,那就是解锁,查看用户状态的语句如下
select username,account_status from dba_users;
1 MGMT_VIEW OPEN
2 SYS OPEN
3 SYSTEM OPEN
8 DBSNMP EXPIRED
9 SYSMAN EXPIRED(GRACE)
10 OUTLN EXPIRED & LOCKED
11 ANONYMOUS EXPIRED & LOCKED
12 EXFSYS EXPIRED & LOCKED
13 WMSYS EXPIRED & LOCKED
如果有锁定的用户,那就解锁吧
alter user *** account unlock;