Oracle数据库用户的密码过期时间如何修改为永不过期

Oracle的密码过期规则是用Profile来管理的,系统默认只有一个Profile(DEFAULT),该profile的密码过期规则为180天;

而所有的用户都使用该DEFAULT的profile,所以如果修改DEFAULT的过期规则会影响所有的用户;

所以我们新建一个profile,修改该profile的过期规则为无限期,在让某个用户适用于该profile,则该用户的过期规则会变更。

以下举例:修改MESSERIES用户的密码过期规则为UNLIMITED

1.     新建profile "PASSWD_UNLIMIT",规则与DEFAULT一致(因为一个profile中包含很多的项目,我们此时只想修改过期规则,其他的不变)

2.     修改profile "PASSWD_UNLIMIT",修改过期规则为UNLIMITED

3.     将'MESSERIES'用户适用新的profile "PASSWD_UNLIMIT"

SQL如下:

SELECT * FROMdba_profiles s WHERE s.profile='DEFAULT' ANDresource_name='PASSWORD_LIFE_TIME';
SELECT * FROMdba_profiles s ;
--查看用户profile
select username, user_id, account_status,expiry_date, profile from dba_users where username = 'MESSERIES';
--1. 创建新的profile(PASSWD_UNLIMIT)复制DEFAULT的Script
CREATE PROFILE "PASSWD_UNLIMIT" LIMIT
 SESSIONS_PER_USER UNLIMITED
 CPU_PER_SESSION UNLIMITED
 CPU_PER_CALL UNLIMITED
 CONNECT_TIME UNLIMITED
 IDLE_TIME UNLIMITED
 LOGICAL_READS_PER_SESSION UNLIMITED
 LOGICAL_READS_PER_CALL UNLIMITED
 COMPOSITE_LIMIT UNLIMITED
 PRIVATE_SGA UNLIMITED
 FAILED_LOGIN_ATTEMPTS 10
 PASSWORD_LIFE_TIME 180
 PASSWORD_REUSE_TIME UNLIMITED
 PASSWORD_REUSE_MAX UNLIMITED
 PASSWORD_LOCK_TIME 1
 PASSWORD_GRACE_TIME 7
 PASSWORD_VERIFY_FUNCTION NULL;
SELECT * FROMdba_profiles;
--2. 修改新建的profile(PASSWD_UNLIMIT),密码过期为不过期
ALTER profilePASSWD_UNLIMIT limit PASSWORD_LIFE_TIME UNLIMITED;
--3. 修改用户的Profile为新的profile
alter user MESSERIES profile PASSWD_UNLIMIT;

以上所述是小编给大家介绍的Oracle数据库用户的密码过期时间如何修改为永不过期,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • oracle密码过期的彻底解决方案

    越是赶时间,越耽误事,测试环境oracle密码过期. 不多说,解决:设置成永不过期(SIT环境). 1.以sys用户登录管理数据库:查询语句如下,未格式化查询语句.. select * from dba_profiles where profile = 'DEFAULT' and resource_name = 'PASSWORD_LIFE_TIME'; 2.修改有效期,提交. alter profile default limit password_life_time unlimited; c

  • 使用Oracle数据库登录时被告知用户被锁怎么解决

    在登陆时被告知test用户被锁 1.用dba角色的用户登陆,进行解锁,先设置具体时间格式,以便查看具体时间 SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss'; Session altered. 2.查看具体的被锁时间 SQL> select username,lock_date from dba_users where username='TEST'; USERNAME LOCK_DATE --------------

  • 深入探讨:Oracle中如何查询正锁表的用户以及释放被锁的表的方法

    可在PL/SQL中用如下SQL语句来查询当前数据库中哪些表被锁住了,并且是哪些用户来锁的这些表: SELECT  A.OWNER,                        --OBJECT所属用户  A.OBJECT_NAME,                  --OBJECT名称(表名)  B.XIDUSN,  B.XIDSLOT,  B.XIDSQN,  B.SESSION_ID,                   --锁表用户的session  B.ORACLE_USERNAME

  • Oracle用户密码过期和用户被锁的解决方法

    今天正在上班的过程中,客户反映了他们的系统登录不了,经过我的一番检查,发现是因为数据库密码过期导致的,在网上查找相关资料发现还真有此种情况发生,在此顺便做了个整理,以便共同交流! 产生原因: 在oracle11g中默认在default概要文件中设置了"PASSWORD_LIFE_TIME=180天"所导致. 在oracle11g中默认在default概要文件中设置了"FAILED_LOGIN_ATTEMPTS=10次",当输入密码错误次数达到设置值将导致此问题. 解

  • Oracle 11g中密码过期问题详解

    密码过期的原因一般有两种可能: 一.由于Oracle中默认在default概要文件中设置了"PASSWORD_LIFE_TIME=180天"所导致. 二.由于Oracle中默认在default概要文件中设置了"FAILED_LOGIN_ATTEMPTS=10次",当输入密码错误次数达到设置值将导致此问题. 第一种情况解决方法如下: 1.查看用户用的哪种profile策略,一般是default: 复制代码 代码如下: SQL> select username,p

  • ORACLE 查询被锁住的对象,并结束其会话的方法

    使用Oracle时,发现有表被锁,又不知道是谁(或者哪个程序)锁的,怎么办 ? 两步走: 1.查找出被锁对象的会话ID和序列号 执行如下SQL: -- 查询出被锁对象,并提供 kill 脚本 SELECT S.SID, S.MACHINE, O.OBJECT_NAME, L.ORACLE_USERNAME, L.LOCKED_MODE, S.OSUSESR, 'ALTER SYSTEM KILL SESSION '''|| S.SID || ', '|| S.SERIAL#||''';' AS

  • ORACLE 如何查询被锁定表及如何解锁释放session

    ORACLE EBS操作某一个FORM界面,或者后台数据库操作某一个表时发现一直出于"假死"状态,可能是该表被某一用户锁定,导致其他用户无法继续操作 复制代码 代码如下: --锁表查询SQLSELECT object_name, machine, s.sid, s.serial# FROM gv$locked_object l, dba_objects o, gv$session s WHERE l.object_id = o.object_id AND l.session_id =

  • ORA-28002 Oracle 11g存在密码过期问题解决方案

    故障现象 Oracle Database 11g 数据库普通用户登录时提示 ORA-28002: the password will expire within 7 days [11:01:00oracle@dvd db_1]$sqlplus wang/oracle SQL*Plus: Release 11.2.0.1.0 Production on Fri Nov 16 11:01:23 2012 Copyright (c) 1982, 2009, Oracle. All rights res

  • Oracle数据库账号被锁定解决方法

    在Oracle数据库操纵中,登录Oracle账号时提示失败,并且Oracle账号频繁被锁定.造成此故障的原因是什么呢?本文就介绍了这一过程,经由过程慢慢排查我们就能找到该故障的原因了. 下面记录下查找这个题目的步调. 1. 找到账号被锁按时候 哄骗sqlplus或者sqldeveloper,查询账号被锁定的时候,相干语句如下: --批改当前会话的日期显示格局 alter session set nls_date_format = ""yyyy-MM-dd hh24:mi:ss"

  • oracle查看被锁的表和被锁的进程以及杀掉这个进程

    -- 1. 查看被锁的表 SELECT p.spid, a.serial#, c.object_name, b.session_id, b.oracle_username,b.os_user_name FROM v$process p, v$session a, v$locked_object b, all_objects c WHERE p.addr = a.paddr AND a.process = b.process AND c.object_id = b.object_id -- 2.

随机推荐