SQL> select username, user_id, account_status,expiry_date, profile from dba_users where username = 'SCOTT';

USERNAME USER_ID ACCOUNT_STATUS EXPIRY_DATE PROFILE
-------------------- ---------- ------------------------------------------------- -------------------
SCOTT 52 EXPIRED & LOCKED(TIMED) 2019/07/22 20:12:35 DEFAULT

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

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

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

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

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

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

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

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

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

SQL如下:
SELECT * FROM dba_profiles WHERE profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';

SELECT * FROM dba_profiles;

--查看用户profile

select username, user_id, account_status,expiry_date, profile from dba_users where username = 'SCOTT';

--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 * FROM dba_profiles;
--2. 修改新建的profile(PASSWD_UNLIMIT),密码过期为不过期
ALTER profile PASSWD_UNLIMIT limit PASSWORD_LIFE_TIME UNLIMITED;
--3. 修改用户的Profile为新的profile
alter user SCOTT profile PASSWD_UNLIMIT;

二、Oracle数据库用户账号处于expired状态解决方法

Oracle数据库账户过期,必须要用户更改密码, 账户才能重新使用。

但有些时候, 因为各种原因, 我们并不知道原密码的明文是什么,但很多时候又不能修改已有密码,好在可以用原密码来更改密码。

在11G中,dba_users.password已经不再显示用户的密码:

SQL> select username,ACCOUNT_STATUS from dba_users where username in ('SYSTEM','SCOTT');

USERNAME ACCOUNT_STATUS
------------------------------ --------------------------------
SCOTT OPEN
SYSTEM EXPIRED
SQL> select password from dba_users where username in ('SYSTEM','SCOTT');
PASSWORD
------------------------------

在系统表user$中,可以查看用户的密码(PASSWORD)和状态(ASTATUS)
SQL> select user#,name,password,astatus from user$ where name in ('SYSTEM','SCOTT');
USER# NAME PASSWORD ASTATUS
---------- ------------------------------ ------------------------------ ----------
83 SCOTT F894844C34402B67 0
5 SYSTEM 2D594E86F93B17A1 1
SQL>

可以通过上面的查询结果,用原来的密码来修改过期用户的密码:

SQL> alter user system identified by values '2D594E86F93B17A1';
User altered.
SQL> select user#,name,password,astatus from user$ where name in ('SYSTEM','SCOTT');
USER# NAME PASSWORD ASTATUS
---------- ------------------------------ ------------------------------ ----------
83 SCOTT F894844C34402B67 0
5 SYSTEM 2D594E86F93B17A1 0
SQL>
其实也可以直接修改表user$的字段ASTATUS为0,这样用户账号就变成open状态了。
ASTATUS对应的值的含义可以同过user_astatus_map查看
SQL> select * from user_astatus_map;
STATUS# STATUS
---------- --------------------------------
0 OPEN
1 EXPIRED
2 EXPIRED(GRACE)
4 LOCKED(TIMED)
8 LOCKED
5 EXPIRED & LOCKED(TIMED)
6 EXPIRED(GRACE) & LOCKED(TIMED)
9 EXPIRED & LOCKED
10 EXPIRED(GRACE) & LOCKED
9 rows selected.
SQL>
SQL> select username, user_id, account_status,expiry_date, profile from dba_users where username = 'SCOTT';

USERNAME USER_ID ACCOUNT_STATUS EXPIRY_DATE PROFILE
-------------------- ---------- ------------------------------------------------- ------------------- --------------------
SCOTT 52 OPEN PASSWD_UNLIMIT

Oracle数据库用户的密码过期问题处理的更多相关文章

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

    Oracle的密码过期规则是用Profile来管理的,系统默认只有一个Profile(DEFAULT),该profile的密码过期规则为180天.那么如何修改Oracle数据库用户的密码过期时间为永不 ...

  2. 修改Oracle数据库用户的密码

    修改数据库用户system密码的两个方法: 方法一: alter user system identified by password; 方法二: password system;

  3. 在linux环境下重启oracle数据库,解决密码过期的问题

    (1) 以oracle身份登录数据库,命令:su – oracle (2) 进入Sqlplus控制台,命令:sqlplus /nolog (3) 以系统管理员登录,命令:connect /as sys ...

  4. Oracle数据库用户密码设为无限期

    oracle数据库用户密码默认为180天,密码过期后将无法登陆数据库. 一.查询用户所属PROFILE SQL> SELECT username,PROFILE FROM dba_users; ...

  5. Oracle 数据库用户管理

    Oracle 数据库用户管理 Oracle 权限设置      一.权限分类: 系统权限:系统规定用户使用数据库的权限.(系统权限是对用户而言). 实体权限:某种权限用户对其它用户的表或视图的存取权限 ...

  6. Oracle数据库---用户与角色

    Oracle数据库---用户与角色 2019年02月26日 10:56:10 俊杰梓 阅读数:21 标签: 数据库 更多 个人分类: 数据库   版权声明:版权所有,转载请注明出处.谢谢 https: ...

  7. 使用PLSQL 创建Oracle数据库用户并设置权限

    转至https://blog.csdn.net/ying890/article/details/14083029?utm_medium=distribute.pc_relevant_download. ...

  8. 简便删除已经存在的oracle数据库用户UPAY3LINGXI_YS

    简便删除已经存在的oracle数据库用户UPAY3LINGXI_YS:1.Toad工具用oracle最大权限用户登录system2.查看正在使用UPAY3LINGXI_YS的进程select * fr ...

  9. Oracle数据库用户数据完整备份与恢复

    使用PLSQL-Developer工具可以快速便捷地完成Oracle数据库用户.表的备份恢复. Oracle数据库用户数据完整备份与恢复 1. 备份 1.1   PL/SQL->工具->导 ...

随机推荐

  1. spring boot 是如何利用jackson进行序列化的?

    接上一篇:spring boot 是如何利用jackson进行反序列化的? @RestController public class HelloController { @RequestMapping ...

  2. 初探 -2 JavaScript

    JavaScript 简介 JavaScript 是互联网上最流行的脚本语言,这门语言可用于 HTML 和 web,更可广泛用于服务器.PC.笔记本电脑.平板电脑和智能手机等设备. JavaScrip ...

  3. Spring基础20——AOP基础

    1.什么是AOP AOP(Aspect-Oriented Programming)即面向切面编程,是一种新的方法论,是对那个传统OOP面向对象编程的补充.AOP的主要编程对象是切面(aspect),而 ...

  4. docker 安装与使用的相关问题

    Error response from daemon: i/o timeout $ sudo docker search centos Error response from daemon: Get ...

  5. WLAN AutoConfig服务无法开机自动启动

    又到“618”大促销,商家搞活动,买了一只小无线网卡,刚装上,一切正常.重新启动电脑后,发现无线网卡已被禁用!手工启用无线网卡也不能解决.到“计算机管理”-“服务”中将“WLAN Autoconfig ...

  6. kloxo增加了域名,怎么不能访问?如何重启web服务?

    kloxo增加了域名,怎么不能访问?这是因为需要重新启动web服务. 有时候网站打不开,也可以尝试重启web服务. 重启web服务方法: 登录kloxo后台-->左边栏:服务器linux --& ...

  7. BZOJ - 1036 树的统计Count (LCT)

    LCT试炼题(代码量居然完爆树剖?) #include<bits/stdc++.h> using namespace std; ,inf=0x3f3f3f3f; ],flp[N],n,m, ...

  8. Eclipse/MyEclipse超全常用快捷键汇总,绝对实用

    [MyEclipse CI 2019.4.0安装包下载] Eclipse的编辑功能非常强大,掌握了Eclipse快捷键功能,能大大提高开发效率.Eclipse中有如下一些和编辑相关的快捷键. 常用快捷 ...

  9. UI线程-重绘,回流

    性能消耗大 程序要操作 或 更改界面内容,必须向单一线程执行请求,把这个单一的线程称为事件派发线程,简称为 UI 线程

  10. ZROI 19.07.30 简单字符串/ll

    写在前面:今天下午药丸--不会字符串,全程掉线/ll 给出字符串\(S\),\(q\)次询问,每次给出\(a,b,c,d\),询问\(S[a,b]\)的所有子串和\(S[c,d]\)最长公共前缀的最大 ...