<!-- [if gte mso 9]><xml><w:WordDocument><w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel><w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery><w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery><w:DocumentKind>DocumentNotSpecified</w:DocumentKind><w:DrawingGridVerticalSpacing>7.8</w:DrawingGridVerticalSpacing><w:View>Normal</w:View><w:Compatibility></w:Compatibility><w:Zoom>0</w:Zoom></w:WordDocument></xml><![endif]-->
--=============================
--author:_yeeXun
--date:发表于 @ 2010年12月24日 11:17:00
--address:Jau 17-304
--==============================
数据字典和动态性能视图
数据字典:是oracle 数据库中最重要的组成部分之一,它提供数据库的一些系统信息,存放静态信息。
数据字典记录了数据库的系统信息,它是只读表和视图的集合,数据字典的所有者为sys 用户。
用户只能在数据字典上执行查询操作(select 语句 ) ,而其维护和修改是由系统自动完成的。
每个方案由基表和动态视图组成。
数据字典的组成:数据字典包括字典基表和数据字典视图,其中基表存储数据库的基本信息,普通用户不能直接访问数据字典的基表。数据字典视图是基于数据字典表所建立的视图,普通用户可以通过查询数据字典视图取得系统信息。数据字典视图主要包括三种类型:user_xxx,all_xxx,dba_xxx ( xxx 表示表,视图,是一个范围,即 user 的权限范围)
动态性能视图:记载例程启动后的相关信息。
下面是一些视图:
User _tables:用于显示 当前用户 所拥有的所有表,它只返回用户所对应方案的所有表,例如(我是用scott 登录的,下同):
SQL>selecttable_namefromuser_tables;
TABLE_NAME
------------------------------
DEPT
EMP
BONUS
SALGRADE
STUDENT
CLASSES
MYEMP
7rowsselected
All_tables:用于显示 当前用户可以访问 的所有表。它不仅会返回当前用户方案的所有表,还会返回当前用户可以访问的其他方案的表。这些表是其自己创建的表,或别的用户给其授权访问的表
例如:
SQL>selecttable_namefromall_tables;
TABLE_NAME
------------------------------
DUAL
SYSTEM_PRIVILEGE_MAP
TABLE_PRIVILEGE_MAP
......
PSTUBTBL
98rowsselected
Dba_tables:它会显示 所有方案拥有的数据库表 ,但是查询这种数据库字典视图,要求用户必须是dba 角色或是有 selectanytable 系统权限。
例如: 当用 system 用户查询数据字典视图 dba_tables 时,会返回 system , sys , scott...... 方案对应的数据库表。
SQL> selecttable_namefromdba_tables
ORA-00942:表或视图不存在
因为 scott不是 dba 所以他不具有此权限。