有时候给一些普通用户授予查询系统对象(例如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. Python内置函数(7)——bytearray

    英文文档: class bytearray([source[, encoding[, errors]]]) Return a new array of bytes. The bytearray cla ...

  2. ionic4+angular6 混合移动开发 capacitor cordova

    首先要更新或者安装 ionic cli npm install -g ionic 创建项目 ionic start ionic-angular tabs --type=angular –type=an ...

  3. Docker中运行EOS FOR MAC

    基本要求以及依赖 安装 docker for mac ➡️ https://www.docker.com/products/docker-desktop docker需要7GB+内存.电脑右上角doc ...

  4. java多线程(4)---volatile关键字

    volatile关键字 一旦一个共享变量(类的成员变量.类的静态成员变量)被volatile修饰之后,那么就具备了两层语义: 1)保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的 ...

  5. Java-线程池专题 (美团面试题)

    去美团面试,问到了什么是线程池,如何使用,为什么要用,以下做个总结 1.什么是线程池:  java.util.concurrent.Executors提供了一个 java.util.concurren ...

  6. Chapter 4 Invitations——20

    Well, that was fine. I could leave him alone. 行吧,但愿一切都好.我能让他一个人. I would leave him alone. 我也会让他一个人的. ...

  7. 设计模式总结篇系列:享元模式(Flyweight)

    我们都知道,Java中的String类具有如下特性:String是一个不可变类,当直通过用字符串方式使用String对象时,Jvm实际上在内存中只存有一份,且存在字符串常量池中.当对字符串直接进行修改 ...

  8. curl 错误总结

    证书域名与访问的域名不一致 问题:curl SSL: certificate subject name 'luffichen_server.tencent.com' does not match ta ...

  9. Django学习笔记(8)——前后台数据交互实战(AJAX)

    这里将自己这段时间学习的关于前后台数据交互的笔记写在这里,这里包含了Django传输数据给JS,AJAX的相关问题,跨域问题,如何解决AJAX的跨域问题等等.比较凌乱,请看到这篇博客的盆友见谅,如果我 ...

  10. JaveWeb学习之Servlet(一):Servlet生命周期和加载机制

    原文同步发表至个人博客[夜月归途] 原文链接:http://www.guitu18.com/se/java/2018-07-22/19.html 作者:夜月归途 出处:http://www.guitu ...