查看: 8411|回复: 12

普通用户怎么查询X$BH视图

[复制链接]
论坛徽章:
10
ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44祖国60周年纪念徽章
日期:2009-10-09 08:28:002009新春纪念徽章
日期:2009-01-04 14:52:28奥运会纪念徽章:沙滩排球
日期:2008-10-24 13:14:46奥运会纪念徽章:举重
日期:2008-08-09 07:34:41奥运会纪念徽章:沙滩排球
日期:2008-07-27 20:48:01奥运会纪念徽章:皮划艇激流回旋
日期:2008-07-22 19:31:45奥运会纪念徽章:拳击
日期:2008-07-19 16:09:472008新春纪念徽章
日期:2008-02-13 12:43:032010年世界杯参赛球队:斯洛伐克
日期:2010-06-13 00:10:04
跳转到指定楼层
1#
发表于 2008-3-7 18:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
scott@ORADB> conn / as sysdba
Connected.
sys@ORADB> select count(*)from x$bh;

  COUNT(*)
----------
     10958

sys@ORADB> grant select on x$bh to scott;
grant select on x$bh to scott
                *
ERROR at line 1:
ORA-02030: can only select from fixed tables/views


sys@ORADB> grant select on x_$bh to scott;
grant select on x_$bh to scott
                *
ERROR at line 1:
ORA-00942: table or view does not exist


sys@ORADB> conn scott/tiger@oradb
Connected.
scott@ORADB> select count(*)from x$bh;
select count(*)from x$bh
                    *
ERROR at line 1:
ORA-00942: table or view does not exist


scott@ORADB> select count(*)from x_$bh;
select count(*)from x_$bh
                    *
ERROR at line 1:
ORA-00942: table or view does not exist


根据上面的我要在SCOTT用户下怎么查询x$bh表呢

我看到陈吉平书上有
Piner@10gR2>select file#,dbablk,tch from x$bh where obj=
    (select data_object_id from dba_objects
      where owner='PINER' and object_name='TEST')
    order by dbablk;
P15

select count(*) from v$bh where objd=
(select data_object_id from dba_objects
  where owner='PINER' and object_name='TEST')
  and status !='free'
这个可是在普通用户下可用查询x$bh的

[ 本帖最后由 hjinhe 于 2008-3-10 09:39 编辑 ]
论坛徽章:
9
奥运会纪念徽章:水球
日期:2008-10-24 13:17:39生肖徽章2007版:猪
日期:2009-11-17 16:40:482010新春纪念徽章
日期:2010-01-04 08:33:082010新春纪念徽章
日期:2010-03-01 11:19:50ITPUB9周年纪念徽章
日期:2010-10-08 09:28:522010广州亚运会纪念徽章:卡巴迪
日期:2010-12-06 11:00:042011新春纪念徽章
日期:2011-02-18 11:43:32ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41
2#
发表于 2008-3-8 10:16 | 只看该作者
sys.x_$bh

使用道具 举报

回复
论坛徽章:
8
ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44生肖徽章2007版:狗
日期:2008-11-10 18:48:08生肖徽章2007版:蛇
日期:2009-01-29 23:01:51生肖徽章2007版:猪
日期:2009-03-10 21:24:49生肖徽章2007版:蛇
日期:2009-05-13 21:46:35生肖徽章2007版:羊
日期:2009-09-29 12:50:48祖国60周年纪念徽章
日期:2009-10-09 08:28:002010年世界杯参赛球队:喀麦隆
日期:2010-01-06 20:11:55
3#
发表于 2008-3-8 14:40 | 只看该作者
X$表是oracle数据库运行的基础,在数据库启动时由Oracle应用程序动态创建,是不允许sysdba之外的用户直接访问的,显示授权不被允许
Oracle的解释:
ORA-02030 can only select from fixed tables/views
Cause:An attempt is being made to perform an operation other than a retrieval from a fixed table/view.
Action:You may only select rows from fixed tables/views.

使用道具 举报

回复
论坛徽章:
33
ITPUB元老
日期:2009-03-11 15:35:03咸鸭蛋
日期:2011-11-06 22:20:25紫蛋头
日期:2011-12-27 22:15:052012新春纪念徽章
日期:2012-01-04 11:49:542014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:11红宝石
日期:2014-06-03 13:13:19
4#
发表于 2008-3-8 20:32 | 只看该作者
你可以查询v$bh

使用道具 举报

回复
论坛徽章:
38
2010新春纪念徽章
日期:2010-01-04 08:33:082012新春纪念徽章
日期:2012-02-13 15:12:252012新春纪念徽章
日期:2012-02-13 15:12:252012新春纪念徽章
日期:2012-02-13 15:12:252012新春纪念徽章
日期:2012-02-13 15:12:252012新春纪念徽章
日期:2012-02-13 15:12:25版主2段
日期:2012-05-15 15:24:11优秀写手
日期:2013-12-18 09:29:08马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14
5#
发表于 2008-3-8 21:30 | 只看该作者
创建个视图吧:
SQL> create view my$bh as select * from x$bh;

视图已创建。

SQL> grant select on my$bh to 用户名;

授权成功。

使用道具 举报

回复
论坛徽章:
9
生肖徽章2007版:鼠
日期:2008-01-02 17:35:532010新春纪念徽章
日期:2010-03-01 11:07:24ITPUB元老
日期:2010-11-25 21:23:432011新春纪念徽章
日期:2011-02-18 11:43:34蛋疼蛋
日期:2011-05-18 12:56:16蛋疼蛋
日期:2011-07-05 23:24:04蛋疼蛋
日期:2011-09-01 13:05:43ITPUB十周年纪念徽章
日期:2011-11-01 16:21:152013年新春福章
日期:2013-02-25 14:51:24
6#
发表于 2008-3-9 11:51 | 只看该作者
select * from gv$bh

使用道具 举报

回复
论坛徽章:
138
19周年集字徽章-19
日期:2020-06-08 08:30:56马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-18 16:42:022014年新春福章
日期:2014-02-18 16:42:02路虎
日期:2013-11-22 12:26:18问答徽章
日期:2014-05-08 12:15:31
7#
发表于 2008-3-10 23:36 | 只看该作者
由普通用户能访问v$视图想到的

SQL> create view v as select * from x$bh;

视图已创建。

SQL> grant select on v to system;

授权成功。

SQL> conn system/jinyu
已连接。
SQL> select count(*) from v;
select count(*) from v
                     *
第 1 行出现错误:
ORA-00942: 表或视图不存在


SQL> conn / as sysdba
已连接。
SQL> create public synonym v for v;

同义词已创建。

SQL> conn system/jinyu
已连接。
SQL> select count(*) from v; //通过公共同义词访问

  COUNT(*)
----------
     10624 

ps:这个能不能算是一个bug 

使用道具 举报

回复
论坛徽章:
11
授权会员
日期:2007-07-08 18:54:592009日食纪念
日期:2009-07-22 09:30:00生肖徽章2007版:蛇
日期:2008-10-24 16:46:51奥运会纪念徽章:现代五项
日期:2008-10-24 13:26:49生肖徽章2007版:羊
日期:2008-04-17 18:05:112008新春纪念徽章
日期:2008-02-13 12:43:03生肖徽章2007版:鼠
日期:2008-01-02 17:35:53生肖徽章2007版:鸡
日期:2008-01-02 17:35:53ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44会员2007贡献徽章
日期:2007-09-26 18:42:10
8#
发表于 2008-3-10 23:46 | 只看该作者
原帖由 ttxing 于 2008-3-9 11:51 发表
select * from gv$bh

使用道具 举报

回复
论坛徽章:
10
ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44祖国60周年纪念徽章
日期:2009-10-09 08:28:002009新春纪念徽章
日期:2009-01-04 14:52:28奥运会纪念徽章:沙滩排球
日期:2008-10-24 13:14:46奥运会纪念徽章:举重
日期:2008-08-09 07:34:41奥运会纪念徽章:沙滩排球
日期:2008-07-27 20:48:01奥运会纪念徽章:皮划艇激流回旋
日期:2008-07-22 19:31:45奥运会纪念徽章:拳击
日期:2008-07-19 16:09:472008新春纪念徽章
日期:2008-02-13 12:43:032010年世界杯参赛球队:斯洛伐克
日期:2010-06-13 00:10:04
9#
 楼主| 发表于 2008-3-11 09:09 | 只看该作者
那位能解释下陈的那本书上为什么普通用户可以访问V$BH吗

使用道具 举报

回复
论坛徽章:
1
ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44
10#
发表于 2008-7-8 09:09 | 只看该作者

非SYS用户访问x$表

1、陈的书是采用synonym访问的
访问具体做法如下:
第一步:create view v_ps$bh as select * from x$bh;
第二步:grant select on v_ps$bh to party2;
第三步:create public synonym v_ps$bh for v_ps$bh;
完成三步后就可以访问x$bh了,如同自己的Object。

2、完成前面的两步后,
select * from sys.v_ps$bh也可以的。

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表