在实际的工作中,我们经常需要查找某个对象的定义的情况,本文中我们将针对不同类型的对象分别进行讲解:
一、V$视图和X$视图
普通的用户不能访问V$视图:
| SQL> conn lunar/lunar@test1 已连接。 SQL> select * from user_sys_privs; USERNAME PRIVILEGE ADMIN_OPTION ---------- -------------- ------------ SQL> select * from user_role_privs; USERNAME GRANTED_ROLE ADMIN_OPTION DEFAULT_ROLE OS_GRANTED ----------- --------------- ------------ ------------ ---------- LUNAR CONNECT NO YES NO LUNAR RESOURCE NO YES NO PUBLIC PLUSTRACE NO YES NO SQL> select count(*) from v$fixed_table; select count(*) from v$fixed_table ORA-00942: 表或视图不存在 必须授权: SQL> conn /@test1 as sysdba 已连接。 SQL> grant select on v_$fixed_table to lunar; 授权成功。 SQL> conn lunar/lunar@test1 已连接。 SQL> |
我们可以发现,得到授权的普通用户仍然只能访问V$开头的视图,而不能直接访问V_$开头的视图,因为实际上V$视图是V_$视图的公有同义词(PUBLIC SYNONYM)要想访问V_$必须带上SYS.V_$.
例如:
| SQL> select count(*) from v$fixed_table; COUNT(*) ---------- 912 SQL> select count(*) from v_$fixed_table; select count(*) from v_$fixed_table ORA-00942: 表或视图不存在 SQL> select count(*) from sys.v_$fixed_table; COUNT(*) ---------- 912 SQL> |
与此同时,也可以授予用户SELECT any table权限,这样这个用户就可以访问所有的V$视图:
| SQL> grant select any table to lunar; 授权成功。 SQL> select * from user_role_privs; USERNAME GRANTED_ROLE ADMIN_OPTION DEFAULT_ROLE OS_GRANTED ------------ --------------------- ------------ ------------ ---------- LUNAR CONNECT NO YES NO LUNAR RESOURCE NO YES NO PUBLIC PLUSTRACE NO YES NO SQL> select * from user_sys_privs; USERNAME PRIVILEGE ADMIN_OPTION ------------ ----------------------- ------------ LUNAR SELECT ANY TABLE NO SQL> select count(*) from v$fixed_table; COUNT(*) ---------- 912 SQL> select * from v$fixed_table where rownum<2; NAME OBJECT_ID TYPE TABLE_NUM ---------- ---------- ----- ---------- X$KQFTA 4294950912 TABLE 0 SQL> select * from v_$fixed_table where rownum<2; select * from v_$fixed_table where rownum<2 ORA-00942: 表或视图不存在 SQL> select * from sys.v_$fixed_table where rownum<2; NAME OBJECT_ID TYPE TABLE_NUM ---------- ---------- ----- ---------- X$KQFTA 4294950912 TABLE 0 SQL> |
通过查询V$FIXED_TABLE视图,我们可以看到大部分V$视图和一些X$视图(还有一些Oracle未公开的视图不在其中)。
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
相关专题
- Oracle语句优化规则汇总(8) (17次浏览)
- Data Guard学习物理standby高级管理 (17次浏览)
- 基于SQL几个常用的几个系统表 (15次浏览)
- 甲骨文如何解析语义谜题 (13次浏览)
- 一步一步配置Oracle Stream (11次浏览)
- 用“kill”命令终止“Oracle”的过程 (9次浏览)
- 如何查找运行系统里的“bad sql”语句 (9次浏览)
- 讲解“Oracle”下导出某用户所有表的方法 (8次浏览)
- Oracle语句优化规则汇总(5) (8次浏览)
- Oracle更新操作优化 (8次浏览)



