360图书馆文章备份

← 返回首页

Oracle 数据库中V$、GV$、X$、V

2019-06-21

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_$同义词的创建。

授权举例

  1. SQL> grant select on v$mystat to HR;
  2. grant select on v$mystat to HR
  3. *
  4. 第 1 行出现错误:
  5. ORA-02030: 只能从固定的表/视图查询
  6. 已用时间: 00: 00: 00.10
  7. SQL>

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

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

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

  1. SQL> grant select on v_$mystat to HR;
  2. 授权成功。
  3. 已用时间: 00: 00: 00.12
  4. SQL>

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

v$session

v$sql

v$sql_plan

v$sql_plan_statistics

v$sql_workarea

(完)