Oracle设置密码永不过期的方法

 更新时间:2024年03月10日 15:51:33   作者:Ice Wang  
这篇文章主要介绍了Oracle设置密码永不过期的方法,文中通过代码示例介绍的非常详细,对大家使用Oracle设置密码永不过期有一定的帮助,需要的朋友可以参考下

Oracle 设置密码永不过期

OSB中AdminServer启动报错:

WARNING: Can not connect DB with URL jdbc:oracle:thin:@//xxxx:1521/xx
java.sql.SQLException: ORA-28001: the password has expired

oracle.security.jps.JpsException: JPS-01055: Could not create credential store instance. Reason oracle.security.jps.service.policystore.PolicyStoreException: Can not connect DB with URL [jdbc:oracle:thin:@//xxxxxxxx:1521/xx

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;

plsql中操作:

password expire:用来设置用户口令过期,失效,强制用户登录数据库时候必须修改口令

去掉勾选项:

参考资料:

执行默认数据库安装,即所有密码将在180天后过期。不知道的会导致应用程序出现问题,因为在这段时间后无法连接到数据库。特别是在测试或开发环境中工作,将不关心安全问题,这意味着密码不应该自动到期。这篇文章的目的是展示如何更改行为以及即使过期帐户过期也可以重置过期帐户。

1.调整密码到期策略

首先,我们必须验证数据库中的密码过期策略。最好的方法是对DBA_PROFILES运行查询:

select * from dba_profiles where resource_name = 'PASSWORD_LIFE_TIME'; 
这确认密码到期策略设置为默认值180天。您可以通过以下方式将此值更改为无限制:
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; 

如果您使用不同的配置文件名称作为“DEFAULT”或多个配置文件,请记住调整语句。使用与以前相同的查询完成此更改的验证:

select * from dba_profiles where resource_name = 'PASSWORD_LIFE_TIME'; 

2.检查有问题的帐户

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

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

接下来将显示如何使用脚本重新打开受影响的帐户的两个不同选项。两个版本都将重新打开帐户,以便可以再次使用它们。两个选项之间的主要区别在于选项1会将所有过期的帐户设置为脚本中给出的新密码。选项2将执行相同操作,但将帐户密码重置为旧密码,而不是设置新密码。

A.给所有用户重新设置密码,创建一个名为:userpwn.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;

B.恢复以前的密码,创建一个名为:userpwn.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;

3.使用的脚本示例

给用户解锁:

ALTER USER OHS account unlock;

修改用户密码:

ALTER USER OHS identified by welcome1;

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

到此这篇关于Oracle设置密码永不过期的方法的文章就介绍到这了,更多相关Oracle密码永不过期内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Oracle报错:ORA-28001:口令已失效解决办法

    Oracle报错:ORA-28001:口令已失效解决办法

    最近在工作中遇到了一个问题,错误是Oracle报错ORA-28001:口令已失效,下面这篇文章主要给大家介绍了关于Oracle报错:ORA-28001:口令已失效的解决办法,需要的朋友可以参考下
    2023-04-04
  • Oracle删除当前用户下所有表的方法适用于有或没有删除权限

    Oracle删除当前用户下所有表的方法适用于有或没有删除权限

    如果有plsql客户端,则可以使用该用户登录,选中所有表 右键Drop即可,如果有或没有删除用户的权限都可以使用下面的方法
    2014-06-06
  • oracle数据库的删除方法详解

    oracle数据库的删除方法详解

    这篇文章主要介绍了oracle数据库的删除方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • 在Oracle数据库中同时更新两张表的简单方法

    在Oracle数据库中同时更新两张表的简单方法

    这篇文章主要介绍了在Oracle数据库中同时更新两张表的简单方法,同时介绍了一种差异性合并更新的方法,需要的朋友可以参考下
    2015-11-11
  • Oracle关于时间/日期的操作

    Oracle关于时间/日期的操作

    Oracle关于时间/日期的操作...
    2007-03-03
  • 设置oralce自动内存管理执行步骤

    设置oralce自动内存管理执行步骤

    设置内存管理首先要启用oracle自动内存管理需要shutdown ,restart,接下来为大家介绍下详细的执行步骤,感兴趣的朋友可以参考下哈
    2013-04-04
  • Oracle数据库中的游标cursor使用详解

    Oracle数据库中的游标cursor使用详解

    这篇文章主要给大家介绍了关于Oracle数据库中的游标使用的相关资料,游标提供了一种从表中检索数据并进行操作的灵活手段,游标主要用在服务器上,处理由客户端发送给服务器端的SQL语句,或是批处理、存储过程、触发器中的数据处理请求,需要的朋友可以参考下
    2023-10-10
  • 解决线上Oracle连接耗时过长的问题现象

    解决线上Oracle连接耗时过长的问题现象

    这篇文章主要介绍了记一次线上Oracle连接耗时过长的问题,本文通过问题定位分析给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • oracle SCN跟TIMESTAMP之间转换

    oracle SCN跟TIMESTAMP之间转换

    本文将详细介绍oracle SCN跟TIMESTAMP之间转换,需要的朋友可以参考下
    2012-11-11
  • oracle中add_months()函数及用法总结

    oracle中add_months()函数及用法总结

    这篇文章主要介绍了oracle中add_months()函数及用法总结,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-08-08

最新评论