前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【基础知识】Oracle查询密码修改记录

【基础知识】Oracle查询密码修改记录

作者头像
甚至熊熊
发布2021-04-22 17:24:09
1.7K0
发布2021-04-22 17:24:09
举报

看到群里有小伙伴问这个问题,自己也很好奇就查了一下相关的一些知识,如果有不对的地方看到的大佬一定指出!

1.基表查询密码修改记录

通过查询sys.user跟sys.user_history基表,能查询到某账户的历史修改记录。但是根据自己查询及向同事确认,在不考虑审计功能的情况下最多就能查询到修改的时间及密码文件的加密串。

代码语言:javascript
复制
--语句1
SELECT name, password_date, password
FROM sys.user$, sys.user_history$
WHERE user$.user# = user_history$.user#;

单独查询sys.user$只能查询到最近一次密码修改的记录

代码语言:javascript
复制
--语句2
select name,TYPE#,PTIME from USER$ where name ='XK';

2.sys.user$表的一些列说明

这个表保存了关于users和roles的一些信息

一些列的说明:

  • NAME – user或者role的名称
  • TYPE# – 0代表role,1代表user
  • CTIME – 创建时间
  • PTIME – 密码最后一次修改的时间
  • EXPTIME – 密码最后过期的日期
  • LTIME – 资源最后被锁定的日期
  • LCOUNT – 登录失败的次数
代码语言:javascript
复制
--查询示例
SELECT NAME, type#, ctime, ptime, exptime, ltime, lcount 
  FROM sys.user$
WHERE NAME IN ('SYS', 'SYSTEM', 'PUBLIC', 'DBA', 'SCOTT')  
ORDER BY NAME;

3.sys.user_history$基表

首先注意,一开始执行语句1(文章开头的)的时候并没有返回值,单独查询了一下sys.user_history$表的时候是空的。确认只有PASSWORD_REUSE_TIME设置为非UNLIMITED的时候才会记录。

代码语言:javascript
复制
--查询PASSWORD_REUSE_TIME设置
select profile,limit 
from dba_profiles 
where profile='DEFAULT' and resource_name='PASSWORD_REUSE_TIME';

--修改PASSWORD_REUSE_TIME设置
alter profile DEFAULT limit PASSWORD_REUSE_TIME 360;

user.user# = user_history.user#

4.总结

  1. 假设在上面参数都设置好的情况下,是能帮助确认到密码的历史修改记录,但是仅仅是修改时间及原密码的加密串;
  2. 启用审计能记录更多的信息,但是起码目前我经手的库大部分是不开的;
  3. 有些独立的数据库审计软件是能记录;
  4. 审计这块还是得系统学习下;
  5. SYS.AUD$
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-04-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据库学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.基表查询密码修改记录
  • 2.sys.user$表的一些列说明
  • 3.sys.user_history$基表
  • 4.总结
相关产品与服务
数据安全审计
腾讯云数据安全审计(Data Security Audit,DSAudit)是一款基于人工智能的数据库安全审计系统,可挖掘数据库运行过程中各类潜在风险和隐患,为数据库安全运行保驾护航,是企业的等保合规利器。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档