两个不同表中同一用户的不同ACCOUNT_STATUS(Oracle DB)

k5ifujac  于 2023-06-22  发布在  Oracle
关注(0)|答案(1)|浏览(111)

我现在正在学习Oracle数据库(Oracle 12 C)的管理,在查看数据库中的两个表时遇到了问题。
帐户的account_status上有冲突。在v#pwfile_user表中,该帐户的account_status为“OPEN”,而在dba_users表中为“EXPIRED&LOCKED”。
通过谷歌搜索,我发现名为'v$~'的表和名为'dba_~'的表运行在不同的层上,但我真的不明白这到底是如何引起我注意到的account_status冲突的。
我想知道1)原因-冲突是如何发生的-,以及2)在这种情况下,哪个account_status(两个表中的on之间)将优先
提前感谢大家!

kyvafyod

kyvafyod1#

v$pwfile_users通过一个固定的表(x$kzsrt)询问运行示例的主机上的密码文件(通过orapwd创建),并显示哪些身份验证用户已设置为能够以SYSDBA或其他SYS级身份远程连接。这些条目是在GRANT SYSDBA TO等之后添加的。它只管理与这些提升的权限进行远程连接的能力。在大多数数据库中,它将是空的。这种观点很少用于任何事情。
DBA_USERS查询user$字典表,并显示使用CREATE USER创建的数据库用户,或每个Oracle数据库预装的用户。这可能是您需要考虑的唯一视图。此视图中的帐户状态是最重要的。
实际上不清楚v$pwfile_users中的帐户状态意味着什么,因为这不是user$表,而是一个OS文件,根据我所见过的任何文档,该文件不包含此信息,也不知道当这些属性更改时如何更新。事实上,在12cR2之前,此视图没有此列(也没有日期列)。它只是授予了用户名和SYS标识。也许Oracle正在为未来的增强做准备。如果有人知道为什么这些额外的列出现在12cR2中,那将是很有趣的。在那之前,我不会在意的。DBA_USERS是你需要的。

相关问题