捷凌网安Oracle频道
中国IT教育
首页 入门基础 安装配置 体系架构 PLSQL 备份恢复 性能调优 开发技术 资讯动态 考试认证 讨论
 您现在的位置: 捷凌网安 >> Oracle >> 体系架构 >> 正文
实例讲解如何查找某个对象的定义情况

作者:佚名 责任编辑:左决 点击数: 更新时间:2008-3-27 0:26:31

  在实际的工作中,我们经常需要查找某个对象的定义的情况,本文中我们将针对不同类型的对象分别进行讲解:
 
  一、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未公开的视图不在其中)。

[1] [2] [3] 下一页

  • 上一篇文章:

  • 下一篇文章:
  •  
     最进更新
    普通文章如何获得Oracle DBA工作?05-11
    普通文章分别删除数据表记录的方法05-11
    普通文章实例讲解删除表空间时存在的05-11
    普通文章Oracle Wait Event:Data fil05-11
    普通文章重复利用这个外部表的表结构05-11
    普通文章Oracle 9i数据库的用户创建以05-11
    普通文章Oracle数据库应用程序中RAID05-11
    普通文章如何更改监听器设置05-11
    普通文章Oracle中SQL语句执行效率的查05-11
    普通文章掌握数据库链路的建立和使用05-11
     
     推荐文章
    推荐文章研究人员发现攻击Oracle数据04-30
    推荐文章研究人员找到新方法黑掉Orac04-30
    推荐文章数据库产业商业模式大猜想04-30
    推荐文章一种并发控制的精典案例04-30
    推荐文章讲解Oracle在Solaris下的性能04-30
    推荐文章Oracle中为什么会产生回滚与04-30
    推荐文章实例讲解sql_trace和access 04-30
    推荐文章Oracle数据库9i和10g环境下使04-30
    推荐文章Oracle数据库后台进程的具体04-30
    推荐文章Oracle数据库中Undo数据段的04-30
     
     热点文章
    普通文章PB内置Oracle数据库接口的使03-27
    普通文章用最简单的方法记录Oracle语03-27
    推荐文章教你快速掌握Oracle数据库的03-27
    推荐文章详细讲解"Oracle"数据库的“03-27
    普通文章深入讲解Oracle数据库的多栏03-27
    推荐文章教你快速掌握一个简单的Orac03-27
    推荐文章初学者应该如何理解Oracle的03-27
    普通文章怎样将"Oracle"的外部表汉字03-27
    推荐文章解决不同字符集数据库间的数03-27
    普通文章Oracle的window服务启动时并03-27

    | 设为首页 | 加入收藏 | 联系站长 | 广告服务 | 友情链接 | 版权申明 | 网站地图 |

    在线交流 捷凌网安主群:51649627
    Copyright 2007-2008 © 捷凌网安. All rights reserved.
    备案序号:蜀ICP备08001812号