数据字典和数据字典视图

数据字典是由oracle服务器创建和维护的一组系统表。Sys用户拥有所有的数据字典表。Oracle服务器以最快的方式操作数据字典的基表,所以,数据字典的基表中所存的数据就像天书一样,人类看不懂。所以我们不访问这些基表,要了解数据的一些信息,绝大多数用户都会访问数据字典试图来得到数据库的相关信息。而且数据字典视图把数据字典基表的信息转换成了人们较为容易理解的形式。包括用户名,用户的权限,对象名,约束,审计。

 

数据字典

数据字典视图分为三大类:他们用前缀来区别,其前缀分别为USER,ALL,DBA

oracle数据字典视图_oracle 数据字典 数据字典视图 U

USER_*:有关用户所拥有的对象的信息,即用户自己创建的对象的信息。

ALL_*:有关用户可以访问的信息,即用户自己创建的对象的信息再加上其他用户创建的对象但该用户有权访问的信息。

DBA_*:有关整个数据库对象的信息。

这里的*代表TABLES,INDEXS,OBJECTS等。

以前缀USER开始的数据字典试图中的列与ALLDBA中的列几乎是相同的。但是以前缀为ALLDBA开始的数据字典视图比USER多了一列OWER

oracle数据字典视图_oracle 数据字典 数据字典视图 U_02

 

常用的数据字典视图

  1. 查看某个账号(用户名)下有哪些表?在数据字典user_tables里面就存这些信息

oracle数据字典视图_oracle 数据字典 数据字典视图 U_03

  1. 哪些表我们可以使用。这时数据字典all_tables

oracle数据字典视图_oracle 数据字典 数据字典视图 U_04

以下两个数据字典也可以实现上面的查询功能,利用user_catalog看到他所拥有的所有表的名字和类型。

oracle数据字典视图_oracle 数据字典 数据字典视图 U_05

  1. 作为数据库管理员,想知道您所管理的oracle的名字和创建日期,可以使用V$database来得到相关信息。V$开始的数据字典为动态表,即oracle服务器要随时修改他们,只有DBA可以访问数据字典,所以为了使用V$database,就需要sys或者system用户登录

查看正在运行的数据库名字,创建日期和运行模式

oracle数据字典视图_oracle 数据字典 数据字典视图 U_06

查看oracle实例信息

oracle数据字典视图_oracle 数据字典 数据字典视图 U_07

查看系统上面有什么用户都是什么时候创建的

oracle数据字典视图_oracle 数据字典 数据字典视图 U_08