oracle设置密码永不过期

本文介绍了如何在Oracle数据库中查看用户概要文件、设置密码有效期、修改密码策略以及处理过期或锁定账户。提供了SQL命令来解锁账户和重置密码,并提供了两种不同方式的脚本实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


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天修改成“无限制”:

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;


如果使用不同的配置文件名称作为 DEFAULT 或多个配置文件,需调整语句;
使用相同的语句完成更改的验证:
SELECT * FROM dba_profiles s WHERE resource_name='PASSWORD_LIFE_TIME';


4.检查有问题的账户:

概述数据库中是否显示任何已过期或已锁定的账户:


select username,account_status from dba_users where account_status like 'EXPIRED' or 
account_status like '%LOCKED%'

使用脚本重新打开受影响的账户的两种方式,
主要区别是方式1将所有过期账户设置为脚本中给出的新密码;方式2执行相同操作,但将账户密码重置为旧密码.

1) 给所有用户重新设置新密码,创建一个名为 userpwd.sql 的sql文件

spool on;
set echo off;
set heading off;
set feedback off;
SET SERVEROUTPUT OFF;
spool unlock.sql;
select 'ALTER USER'  || USERNAME || 'account unlock;' from dba_users where  ACCOUNT_STATUS like '%LOCKED%';
spool off;
@unlock.sql;
spool on;
set echo off;
set heading off;
set feedback off;
SET SERVEROUTPUT OFF;
spool pwchangen.sql;
select 'ALTER USER'  || USERNAME || 'identified by '需要修改的密码';'  from dba_users where  
ACCOUNT_STATUS like 'EXPIRED' or 
ACCOUNT_STATUS like '%LOCKED%';
spool off;
@pwchangen.sql;



2) 恢复以前的密码,创建名为 userpwd.sql 的sql文件

spool on;
set echo off;
set heading off;
set feedback off;
SET SERVEROUTPUT OFF;
spool unlock.sql;
select 'ALTER USER'  || USERNAME || 'account unlock;' from dba_users where  ACCOUNT_STATUS like '%LOCKED%';
spool off;
@unlock.sql;
spool on;
set lines 300;
set echo off;
set heading off;
set feedback off;
SET SERVEROUTPUT OFF;
spool pwchangeo.sql;
select 'ALTER USER'  || USERNAME || 'identified by  values ''' || spare4 ||  ''';'  from dba_users,user$ where  
ACCOUNT_STATUS like 'EXPIRED' and USERNAME=NAME;
spool off;
@pwchangeo.sql;

5.使用脚本后

给用户解锁:

ALTER USER OHS  cccount unlock;

修改用户密码:

ALTER USER OHS identified by welcomme1;

修改后不需要重启数据库,立即生效







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值