1、数据字典
数据库一般都包括表、视图、触发器、存储过程、索引等对象,而这些数据库对象,一般都会保存在数据库的数据字典里。
数据字典是数据库的重要组成部分,它记录了数据库的系统信息、对象信息等。
数据字典一般都是由管理员用户进行管理,其他普通用户只能对数据字典进行查询操作。数据字典的维护和修改,都是由数据库管理系统(DBMS)自动完成的,对于普通用户来说是透明的。
数据字典一般由一组基表和一组视图组成,其中基表存储数据库的基本信息,普通用户不能直接访问数据字典的基表,数据字典视图是基于数据字典基表所建立的视图,普通用户可以通过查询数据字典视图取得系统信息。
在ORACLE数据库中,数据字典视图主要包括user_xxx,all_xxx,dba_xxx三种类型。
user_xxx:当前用户拥有的对象;
all_xxx:当前用户有权限访问的对象;
dba_xxx:数据库中所有的对象;
2、ORACLE中常用的数据字典视图
(1)、user_tables:当前用户所拥有的所有表
如:select * from user_tables;
(2)、all_tables:当前用户有访问权限的所有表
如:select * from all_tables;
(3)、dba_tables:当前数据库中所有的表。当查询这个视图时,用户必须是dba角色或是有select any table的系统权限
如:select * from dba_tables;
(4)、user_tab_comments:当前用户所拥有的所有表的注释
如:select * from user_tab_comments;
(5)、all_tab_comments:当前用户有访问权限的所有表的注释
如:select * from all_tab_comments;
(6)、dba_tab_comments:当前数据库中所有表的注释。当查询这个视图时,用户必须是dba角色或是有select any table的系统权限
如:select * from dba_tab_comments;
(7)、user_col_comments:当前用户所拥有的所有表的字段的注释
如:select * from user_col_comments;
(8)、all_col_comments:当前用户有访问权限的所有表的字段的注释
如:select * from all_col_comments;
(9)、dba_col_comments:当前数据库中所有表的字段的注释。当查询这个视图时,用户必须是dba角色或是有select any table的系统权限
如:select * from dba_col_comments;
3、其他数据字典
(1)、dba_sys_privs:用户具有的系统权限
(2)、dba_tab_privs:用户具有的对象权限
(3)、dba_col_privs:用户具有的列权限
(4)、dba_users:所有数据库用户的详细信息
(5)、dba_role_privs:用户所具有的角色
(6)、dba_roles:数据库中的所有角色
(7)、system_privilege_map:数据库中所有的系统权限
(8)、dba_tab_privs:数据库中所有的对象权限
(9)、dba_tablespaces:数据库表空间详细信息