一、数据字典概述
Oracle将对数据库系统的操作及相关信息记录到系统的只读表或只读视图中,我们称这些表和视图为数据字典;数据字典是数据库的核心,存储了非常重要的控制信息,在建立数据库时,就建立了数据字典;数据字典描述了数据库自身和数据库中的各种对象,它们以只读表的形式存储在system表空间中,这些对象由sys用户所拥有,由oracle服务器来管理。 数据字典提供的信息分为如下几类:
1、数据库的物理结构和逻辑结构
2、数据库对象的定义和空间分配
3、数据完整性约束
4、用户信息
5、角色信息
6、权限信息
7、审计信息
二、数据字典的类型
1、基表:保存了对数据库的描述,是在执行create database命令时创建的,其创建脚本保存在$ORACLE_HOME\rdbms\admin\sql.bsq中。
2、数据字典视图:简化了基表的信息已便于用户理解,通过公共的别名访问,其创建脚本保存在$ORACLE_HOME\rdbms\admin\catalog.sql中。
数据字典视图的分类:
a.) DBA_XXXX:访问所有模式对象的某项信息,比如:dba_tables,dba_users等等
b.) ALL_XXXX:当前用户可访问的模式对象的某项信息,比如:dba_tablespaces等等
c.) USER_XXXX :当前用户的模式对象的某项信息。
现在可知,数据字典视图的信息来自于基表,那么如何确定数据字典视图的信息来自于那些基表呢?
SQL> select referenced_owner,referenced_name,referenced_type from dba_dependencies where owner='SYS' and name='DBA_USERS' and type='VIEW';
REFERENCED_OWNER REFERENCED_NAME REFERENCED_TYPE
-------------------- ------------------------------ -----------------
SYS TS$ TABLE
SYS USER$ TABLE
SYS PROFILE$ TABLE
SYS PROFNAME$ TABLE
SYS USER_ASTATUS_MAP TABLE
SYS RESOURCE_GROUP_MAPPING$ TABLE
三、动态性能表(视图)概述
与数据字典类似,在动态性能视图的概念中也包含动态性能表和动态性能视图。
1、动态性能表是虚表,它不是段,不保存在磁盘当中。动态性能表记录了当前数据库的活动信息,可以使用v$fixed_table来查看动态性能表。在动态性能表中记录的都是关于实例的活动信息,实例启动后才会建立这些表,一旦实例关闭,这些信息也将丢失。
2、动态性能视图是由动态性能表组合而成,注意它的名称前缀为v_$,而不是我们常见的v$,v$只是其同义词。下面看一个这方面的例子:
比方说:eric(普通用户)用户想查看v$session视图,要如何处理呢?通常只要使用select on的对象权限即可。
SQL> grant select on v$session to eric;
grant select on v$session to eric
*
ERROR at line 1:
ORA-02030: can only select from fixed tables/views
SQL> grant select on v_$session to eric;
Grant succeeded.
3、使用动态性能视图应注意,在动态性能视图无法执行DML语句,非SYS用户不能操作动态性能视图。
Oracle将对数据库系统的操作及相关信息记录到系统的只读表或只读视图中,我们称这些表和视图为数据字典;数据字典是数据库的核心,存储了非常重要的控制信息,在建立数据库时,就建立了数据字典;数据字典描述了数据库自身和数据库中的各种对象,它们以只读表的形式存储在system表空间中,这些对象由sys用户所拥有,由oracle服务器来管理。 数据字典提供的信息分为如下几类:
1、数据库的物理结构和逻辑结构
2、数据库对象的定义和空间分配
3、数据完整性约束
4、用户信息
5、角色信息
6、权限信息
7、审计信息
二、数据字典的类型
1、基表:保存了对数据库的描述,是在执行create database命令时创建的,其创建脚本保存在$ORACLE_HOME\rdbms\admin\sql.bsq中。
2、数据字典视图:简化了基表的信息已便于用户理解,通过公共的别名访问,其创建脚本保存在$ORACLE_HOME\rdbms\admin\catalog.sql中。
数据字典视图的分类:
a.) DBA_XXXX:访问所有模式对象的某项信息,比如:dba_tables,dba_users等等
b.) ALL_XXXX:当前用户可访问的模式对象的某项信息,比如:dba_tablespaces等等
c.) USER_XXXX :当前用户的模式对象的某项信息。
现在可知,数据字典视图的信息来自于基表,那么如何确定数据字典视图的信息来自于那些基表呢?
SQL> select referenced_owner,referenced_name,referenced_type from dba_dependencies where owner='SYS' and name='DBA_USERS' and type='VIEW';
REFERENCED_OWNER REFERENCED_NAME REFERENCED_TYPE
-------------------- ------------------------------ -----------------
SYS TS$ TABLE
SYS USER$ TABLE
SYS PROFILE$ TABLE
SYS PROFNAME$ TABLE
SYS USER_ASTATUS_MAP TABLE
SYS RESOURCE_GROUP_MAPPING$ TABLE
三、动态性能表(视图)概述
与数据字典类似,在动态性能视图的概念中也包含动态性能表和动态性能视图。
1、动态性能表是虚表,它不是段,不保存在磁盘当中。动态性能表记录了当前数据库的活动信息,可以使用v$fixed_table来查看动态性能表。在动态性能表中记录的都是关于实例的活动信息,实例启动后才会建立这些表,一旦实例关闭,这些信息也将丢失。
2、动态性能视图是由动态性能表组合而成,注意它的名称前缀为v_$,而不是我们常见的v$,v$只是其同义词。下面看一个这方面的例子:
比方说:eric(普通用户)用户想查看v$session视图,要如何处理呢?通常只要使用select on的对象权限即可。
SQL> grant select on v$session to eric;
grant select on v$session to eric
*
ERROR at line 1:
ORA-02030: can only select from fixed tables/views
SQL> grant select on v_$session to eric;
Grant succeeded.
3、使用动态性能视图应注意,在动态性能视图无法执行DML语句,非SYS用户不能操作动态性能视图。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29515435/viewspace-1104185/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29515435/viewspace-1104185/