Oracle 数据库中V$、GV$、X$、V_$、GV_$之间的关系说明

Oracle 数据库中V$、GV$、X$、V_$、GV_$之间的关系说明

GV$:全局视图,针对多个实例环境。
V$:针对某个实例的视图。
X$:是GV$视图的数据来源,Oracle内部表。

 

GV_$:是GV$的同义词。

V_$:是V$的同义词。

我们可以使用V$FIXED_VIEW_DEFINITION视图查询到V$视图和GV$视图的定义。

在$ORACLE_HOME/rdbms/admin/catalog.sql中执行了cdfixed.sql脚本。我们在这个脚本中可以找到GV_、$V_$同义词的创建。

 

授权举例

SQL> grant select on v$mystat to HR;
grant select on v$mystat to HR
                *
第 1 行出现错误:
ORA-02030: 只能从固定的表/视图查询


已用时间:  00: 00: 00.10
SQL>

为什么会出现上面的错误?

因为因为v$这类我们经常查的视图都是v_$开头视图的同义词

所以,在进行授权时需要直接授予用户v_$的查询权限。

SQL> grant select on v_$mystat to HR;

授权成功。

已用时间:  00: 00: 00.12
SQL>

尤其是当需要给普通用户授予对SQL查询相关的几个重要的动态性能视图,需要了解:

v$session

v$sql

v$sql_plan

v$sql_plan_statistics

v$sql_workarea

 

(完)

你可能感兴趣的:(Oracle开发与管理)