有时候给一些普通用户授予查询系统对象(例如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> 

ORA-02030: can only select from fixed tables/views的更多相关文章

  1. Oracle:ORA-01219:database not open:queries allowed on fixed tables/views only

    Oracle:ORA-01219:database not open:queries allowed on fixed tables/views only 问: 解决 ORA-01219:databa ...

  2. [Illuminate\Database\QueryException] SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using pas sword: NO) (SQL: select * from information_schema.tables where table_schema = la

    [Illuminate\Database\QueryException] SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost ...

  3. laravel执行数据库迁移的过程中出现Illuminate\Database\QueryException : SQLSTATE[HY000] [2002] Operation timed out (SQL: select * from information_schema.tables where table_schema = shop and table_name = migrations

    向customers表添加字段phone php artisan make:migration add_phone_to_customers_table 问题: 解决方法: 将DB_HOST配置项修改 ...

  4. DB count check for TABLES VIEWS PROCEDURES TRIGGERS

    SELECT DISTINCT(TABLESPACE_NAME) FROM ALL_TABLES; SELECT COUNT(*) FROM ALL_TABLES where TABLESPACE_N ...

  5. PLSQL Developer软件使用大全

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

  6. [转]PLSQL Developer软件使用大全

    原文地址:https://www.cnblogs.com/lhrbest/p/6493218.html 第一章 PLSQL Developer特性 PL/SQL Developer是一个集成开发环境, ...

  7. 【Oracle】-【权限-ORA-04043】- ORA-04043: object "SYS"."V_$DATABASE" does not exist

    用非dba账号(但赋予了DBA角色)登录一个新的10g数据库想看下版本号, SQL> desc v$instance; ERROR: ORA-04043: object "SYS&qu ...

  8. 使用 PLSQL 提示动态执行表不可访问,本会话的自动统计被禁止

    使用PLSQL,第一次执行表的select操作的时候,提示"动态执行表不可访问,本会话的自动统计被禁止",如上图: 这种问题,一看就是当前连接用户没有对sys用户下的表v$sess ...

  9. v$、v_$、gv$之间的关系

    本次实验测试,oracle数据库视图中v$,v_$,gv$之间的关系 总结: v_$是动态性能视图,通过sql查询数据库基表返回记录.例如,v_$database对象是视图类型,可对其它用户授权访问: ...

随机推荐

  1. [Swift]LeetCode358. 按距离为k隔离重排字符串 $ Rearrange String k Distance Apart

    Given a non-empty string str and an integer k, rearrange the string such that the same characters ar ...

  2. MyBatis增、删、改、查

    1.config.xml文件的基本配置信息 2.选择数据源 3.mybatis约定 (1)parameterType和resultType 只能传一个参数,但是我们可以传一个数组或者集合,达到传多个参 ...

  3. three.js全景漫游实践

    Hello 小伙伴们,如果觉得本文还不错,记得给个 star , 小伙伴们的 star 是我持续更新的动力!GitHub 地址 简介 全景图分两种 由六张正方形图片组成的SkyBox 一整张的宽高比为 ...

  4. 为什么说Java中只有值传递

    本文转载自公众号 Hollis 对于初学者来说,要想把这个问题回答正确,是比较难的.在第二天整理答案的时候,我发现我竟然无法通过简单的语言把这个事情描述的很容易理解,遗憾的是,我也没有在网上找到哪篇文 ...

  5. solr之环境配置四

    Solr链接数据库(mysql,mssql) 一.链接mysql 1.使用DataImportHandler导入并索引数据,配置 $SOLR_HOME\core0\conf\solrconfig.xm ...

  6. Python爬虫入门教程 33-100 《海王》评论数据抓取 scrapy

    1. 海王评论数据爬取前分析 海王上映了,然后口碑炸了,对咱来说,多了一个可爬可分析的电影,美哉~ 摘录一个评论 零点场刚看完,温导的电影一直很不错,无论是速7,电锯惊魂还是招魂都很棒.打斗和音效方面 ...

  7. Android模拟器Genymotion使用详解

    介绍 Genymotion是一款出色的跨平台的Android模拟器,具有容易安装和使用.运行速度快的特点,是Android开发.测试等相关人员的必备工具. 官网地址:https://www.genym ...

  8. Linq用法小记

    一.什么是Linq? LINQ即Language Integrated Query(语言集成查询),LINQ是集成到C#和Visual Basic.NET这些语言中用于提供查询数据能力的一个新特性. ...

  9. Asp.Net SignalR - 持久连接类

    持久连接类 通过SignalR持久连接类可以快速的构建一个即时通讯的应用,上篇博文已经我们创建一个owin Startup类和一个持久连接类来完成我们的工作,然后在Startup类的Configura ...

  10. linux权限之su和sudo的差别

    我们都知道非常多的文件都仅仅有root有权限来改动,那么在我们平时的开发过程中都建议使用一般账号来登录进行开发.还记得前面说到的ssh吗.我们也是将同意root登录设置成no.到必要的时候再切换到ro ...