【Oracle】安装配置数据库体系架构PL/SQL备份与恢复性能调优Oracle开发

您现在的位置:首页 > 网络学院 > 数据库 > Oracle > 数据库体系架构 > 实例讲解如何查找某个对象的定义情况

实例讲解如何查找某个对象的定义情况

来源: 作者: 日期:2008-03-21

【聚杰网数据库体系架构】实例讲解如何查找某个对象的定义情况   在实际的工作中,我们经常需要查找某个对象的定义的情况,本文中我们将针对不同类型的对象分别进行讲解:
 
  一、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          NOSQL> select count(*) from v$fixed_table;select count(*) from v$fixed_tableORA-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(*)
----------
       912SQL> select count(*) from v_$fixed_table;select count(*) from v_$fixed_tableORA-00942: 表或视图不存在SQL> select count(*) from sys.v_$fixed_table;  COUNT(*)
----------
       912SQL>
 
  与此同时,也可以授予用户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          NOSQL> select * from user_sys_privs;USERNAME         PRIVILEGE           ADMIN_OPTION
------------ ----------------------- ------------
LUNAR            SELECT ANY TABLE       NOSQL> select count(*) from v$fixed_table;  COUNT(*)
----------
       912SQL> select * from v$fixed_table where rownum<2;NAME       OBJECT_ID TYPE   TABLE_NUM
---------- ---------- ----- ----------
X$KQFTA    4294950912 TABLE     0SQL> select * from v_$fixed_table where rownum<2;select * from v_$fixed_table where rownum<2ORA-00942: 表或视图不存在SQL> select * from sys.v_$fixed_table where rownum<2;NAME       OBJECT_ID  TYPE   TABLE_NUM
---------- ---------- ----- ----------
X$KQFTA    4294950912 TABLE      0SQL>


 
  通过查询V$FIXED_TABLE视图,我们可以看到大部分V$视图和一些X$视图(还有一些Oracle未公开的视图不在其中)。

1 2 3 下一页

以下相关文章您是否也应该阅读一下 无相关信息
评论   点击查看全部评论
您的评论参与,将为聚杰带来更大的动力!请不要吝啬!
快速回复
请使用文明语言让我们维护健康绿色网络环境!

匿名发表   验证码: