有时候给一些普通用户授予查询系统对象(例如dynamic performance views)权限时会遇到“ORA-02030: can only select from fixed tables/views”,如下所示:

SQL> grant select on v$session to test;
grant select on v$session to test
                *
ERROR at line 1:
ORA-02030: can only select from fixed tables/views

关于ORA-02030错误介绍如下,也是就是对于fixed tables 或fixed views只能进行SELECT查询,不能做SELECT之外的任何操作

[oracle@DB-Server ~]$ oerr ora 2030

02030, 00000, "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.

关于V$ Views的介绍如下:

V$ Views

The actual dynamic performance views are identified by the prefix V_$. Public synonyms for these views have the prefix V$. Database administrators and other users should access only the V$ objects, not the V_$ objects.

The dynamic performance views are used by Oracle Enterprise Manager, which is the primary interface for accessing information about system performance. After an instance is started, the V$ views that read from memory are accessible. Views that read data from disk require that the database be mounted, and some require that the database be open.

我们查询发现V$SESSION,V$DBLINK都是fixed views,而且v$这类我们经常查的视图都是v_$开头视图的同义词。

SQL> SELECT * FROM V$FIXED_TABLE WHERE NAME IN( 'V$SESSION','V$DBLINK');
 
NAME                            OBJECT_ID TYPE   TABLE_NUM
------------------------------ ---------- ----- ----------
V$SESSION                      4294950919 VIEW       65537
V$DBLINK                       4294951157 VIEW       65537
 
SQL> 
SQL> COL OWNER  FOR A12;
SQL> COL OBJECT_NAME FOR A32;
SQL> COL OBJECT_TYPE FOR A32;
SQL> SELECT OWNER, OBJECT_NAME ,OBJECT_TYPE
  2  FROM DBA_OBJECTS 
  3  WHERE OBJECT_NAME='V$SESSION';
 
OWNER        OBJECT_NAME                      OBJECT_TYPE
------------ -------------------------------- --------------------------------
PUBLIC       V$SESSION                        SYNONYM
 
SQL> 
SQL> COL TABLE_OWNER FOR A12;
SQL> COL SYNONYM_NAME FOR A20;
SQL> COL TABLE_NAME FOR A16;
SQL> COL DB_LINK FOR A8;
SQL> SELECT * FROM DBA_SYNONYMS WHERE SYNONYM_NAME='V$SESSION';
 
OWNER        SYNONYM_NAME         TABLE_OWNER  TABLE_NAME       DB_LINK
------------ -------------------- ------------ ---------------- --------
PUBLIC       V$SESSION            SYS          V_$SESSION

所以要授权就应该执行下面SQL语句

SQL>
SQL> GRANT SELECT ON V_$SESSION TO TEST;
 
Grant succeeded.

如果遇到这样的错误,直接找到对应同义词对应的视图或基表,然后进行授权,如下所示:

SQL> show user;
USER is "SYS"
SQL> grant select on v$dblink to test;
grant select on v$dblink to test
                *
ERROR at line 1:
ORA-02030: can only select from fixed tables/views
 
 
SQL> COL OWNER  FOR A12;
SQL> COL OBJECT_NAME FOR A32;
SQL> COL OBJECT_TYPE FOR A32;
SQL> SELECT OWNER, OBJECT_NAME ,OBJECT_TYPE
  2  FROM DBA_OBJECTS 
  3  WHERE OBJECT_NAME=UPPER('v$dblink');
 
OWNER        OBJECT_NAME                      OBJECT_TYPE
------------ -------------------------------- --------------------------------
PUBLIC       V$DBLINK                         SYNONYM
 
SQL> COL TABLE_OWNER FOR A12;
SQL> COL SYNONYM_NAME FOR A20;
SQL> COL TABLE_NAME FOR A16;
SQL> COL DB_LINK FOR A8;
SQL> SELECT * FROM DBA_SYNONYMS WHERE SYNONYM_NAME='V$DBLINK';
 
OWNER        SYNONYM_NAME         TABLE_OWNER  TABLE_NAME       DB_LINK
------------ -------------------- ------------ ---------------- --------
PUBLIC       V$DBLINK             SYS          V_$DBLINK
 
SQL> grant select on v_$dblink to test;
 
Grant succeeded.
 
SQL> 

转载于:https://www.cnblogs.com/kerrycode/p/10142871.html

ORA-02030: can only select from fixed tables/views相关推荐

  1. ORACLE ORA-02030: can only select from fixed tables/views

    对于x$的情况 SQL> grant select on sys.x$bh to t1; grant select on sys.x$bh to t1 ERROR at line 1: ORA- ...

  2. 使用mysql workbench显示Tables/Views could not be fetched

    这个问题应该是哪个表或者视图被破坏了(一般来说是视图,因为你在表里做了修改,比如删了某个字段,而相应的视图却还在引用那个字段),可以在cmd中输入 mysqldump -uroot -p databa ...

  3. plsql dev中Dynamic Performance Tables not accessible分析解决(转载)

    报错原因不在工具本身,可以有3中解决办法:1.第一种处理方法(不推荐)就是在报错的Error对话框中将"Don't show this message again"选项选中,下次就 ...

  4. PLSQL Developer使用大全

    第一章 PLSQL Developer特性 PL/SQL Developer是一个集成开发环境,专门面向Oracle数据库存储程序单元的开发.如今,有越来越多的商业逻辑和应用逻辑转向了Oracle S ...

  5. PLSQl 万能操作

    LSQL Developer软件使用大全 第一章 PLSQL Developer特性 PL/SQL Developer是一个集成开发环境,专门面向Oracle数据库存储程序单元的开发.如今,有越来越多 ...

  6. ORA_ERROR大全

    常见错误: -60 ORA00060: deadlock detected while waiting for resource 一般错误:   - 1 ORA00001: unique constr ...

  7. ORACLE ERROR大全

    ORA_ERROR大全 1 ORA00001: unique constraint (.) violated -17 ORA00017: session requested to set trace ...

  8. PLSQL Developer软件使用大全

    PLSQL Developer软件使用大全 PLSQL Developer软件使用大全 第一章 PLSQL Developer特性 PL/SQL Developer是一个集成开发环境,专门面向Orac ...

  9. ​ PLSQL Developer软件使用大全

    PLSQL Developer软件使用大全 第一章 PLSQL Developer特性 PL/SQL Developer是一个集成开发环境,专门面向Oracle数据库存储程序单元的开发.如今,有越来越 ...

最新文章

  1. linux清除邮件队列
  2. hibernate插入DB时间
  3. ViewPager详解(一)——ViewPager的基本使用完整示例
  4. 多个类的DLL封装及调用
  5. linux——文件输入输出管理
  6. 将信息写入TXT文本中(java)
  7. java 正则 子字符串_使用Java正则表达式来查找另一个子字符串中的子字符串
  8. cf1207解题报告
  9. 主席树学习小结(POJ 2104)
  10. 汤国安《地理信息系统教程》(第二版)笔记(1)——概论
  11. #美化ggplot2生成的原始图片至清爽的感觉
  12. 海量前端后台Java源码模板下载
  13. 清华大学学术答辩通用PPT模板
  14. PDF旋转后保存,打开为什么还是旋转前的方向?
  15. python炫酷烟花表白源代码-python烟花效果的代码实例
  16. 笔记本电脑上没有Home和End键如何使用组合键?
  17. {king:pagelist/} php sp2,kingcms PHP Sp2留言薄怎么显示不出留言呢?
  18. js分享到微信朋友圈、QQ空间、QQ好友、新浪微博、腾讯微博、豆瓣、人人......
  19. vue能做什么以及特点
  20. SuperMap iServer常见问题解答集锦(十五)

热门文章

  1. java 网络序_JAVA 网络程序
  2. js鼠标事件大全-Javascript鼠标事件大全
  3. dorado 刷新_dorado BDF常见问题
  4. xpath mysql_xpath查询是否具有像mysql这样的Limit选项
  5. python企业微信群聊_python调用企业微信接口发送群聊消息代码参考
  6. 华为鸿蒙描述文件,华为鸿蒙HarmonyOS Beta3 2.0.0.110
  7. 前景检测算法(十一)--基于LBP纹理
  8. python fun函数的功能是_python编程。假定输入字符串中只包含字母和*号,请编写函数fun,它的功能是将字符串中间的*号...
  9. 告别鼠标——【Windows下常见系统快捷键】
  10. 我只注视你全cg存档_科幻国漫持续推出,全CG动画星骸骑士首播,这一次吞噬星空输了...