普通用户使用dbms_xplan包需要有的权限

普通用户使用dbms_xplan包查看执行计划需要对v$sql、v$sql_plan、v$session及v$sql_plan_statistics_all这四个视图同时具有select权限。

如果普通用户没有以上权限,执行SQL>select * from table(dbms_xplan.display_cursor(null,null,‘advanced‘));会报错如下:

SQL> select * from table(dbms_xplan.display_cursor(null,null,‘advanced‘));

PLAN_TABLE_OUTPUT

--------------------------------------------------------------------------------

User has no SELECT privilege on V$SESSION

为普通用户scott授予如上四个视图select权限:

SQL>grant select on v_$sql to scott;

SQL>grant select on v_$sql_plan to scott;

SQL>grant select on v_$sql_plan_statictics_all to scott;

SQL>grant select on v_$session to scott;

再次查询执行计划:

SQL> select * from table(dbms_xplan.display_cursor(null,null,‘advanced‘));

PLAN_TABLE_OUTPUT

---------------------------------------------------------------------------------------------------------------------------------SQL_ID  fv0v1agrdrjkv, child number 1

-----------------------------------------------------------------------------------------------------------------------

select * from table(dbms_xplan.display_cursor(null,null,‘advanced‘))

Plan hash value: 3713220770

---------------------------------------------------------------------------------------------------------------------------------

|Id|Operatio|Name|Rows|Bytes|Cost(%CPU)|Time  ---------------------------------------------------------------------------------------------------------------------------------

| 0 | SELECT STATEMENT |   |   |   |    29 (100)|  |    | 1 |  COLLECTION ITERATOR PICKLER FETCH| DISPLAY_CURSOR |     2 |     4 |    29   (0)| 00:00:01 |

PLAN_TABLE_OUTPUT

---------------------------------------------------------------------------------------------------------------------------------

Query Block Name / Object Alias (identified by operation id):

-------------------------------------------------------------

1 - SEL$4A78348A / [email protected]$E112F6F0

Outline Data

-------------

/*+

PLAN_TABLE_OUTPUT

---------------------------------------------------------------------------------------------------------------------------------

BEGIN_OUTLINE_DATA

IGNORE_OPTIM_EMBEDDED_HINTS

OPTIMIZER_FEATURES_ENABLE(‘11.2.0.1‘)

DB_VERSION(‘11.2.0.1‘)

ALL_ROWS

FORCE_XML_QUERY_REWRITE

XML_DML_RWT_STMT

XMLINDEX_REWRITE

XMLINDEX_REWRITE_IN_SELECT

NO_COST_XML_QUERY_REWRITE

OUTLINE_LEAF(@"SEL$4A78348A")

PLAN_TABLE_OUTPUT

---------------------------------------------------------------------------------------------------------------------------------

MERGE(@"SEL$E112F6F0")

OUTLINE(@"SEL$1")

OUTLINE(@"SEL$E112F6F0")

FULL(@"SEL$4A78348A" "KOKBF$"@"SEL$E112F6F0")

END_OUTLINE_DATA

*/

Column Projection Information (identified by operation id):

-----------------------------------------------------------

1 - VALUE(A0)[300]

PLAN_TABLE_OUTPUT

---------------------------------------------------------------------------------------------------------------------------------

Note

-----

- cardinality feedback used for this statement

49 rows selected.

注意:授予普通用户dba权限也得授予如上四个视图的权限才可以普通用户查看执行计划。

时间: 2024-07-31 08:20:42

普通用户使用dbms_xplan包需要有的权限的相关文章

包和访问权限(一)

1. 什么是Java当中的软件包 2. 为什么要使用软件包 3. 如何给一个类打包 1. 什么是Java当中的软件包 假如这个代码分为A组合B组合作开发 A组 建立父类User   子类是Student 和 Teacher B组 建立父类User   子类分为注册和非注册用户 两组代码都有User, 这样会有麻烦 解决:打包 软件包 理解为文件夹, 同名文件放在不同文件夹即可解决问题 3. 如何给一个类打包 1 package Mirror; //package + 包名 2 3 class T

Java中的包与访问权限的控制

多人开发 在java中,可以将一个大型项目中的类分别独立出来,分门别类的存到文件里,再将这些文件一起编译运行,如此的程序代码将更易于维护. 多人开发的问题:如果多个开发人员共同开发一个项目的时候,则肯定会出现类名称相同的情况.那么这样一来就会非常麻烦. 相同的文件会出现覆盖的情况. 包的概念 package是在使用多个类或接口时,为了避免名称重复而采用的一种措施,直接在程序中加入package关键字即可. 包的定义格式: package 包名称.子包名称: package org.lxh.dem

C#修改文件或文件夹的权限,为指定用户、用户组添加完全控制权限

题目链接:11645 - Bits 题意:给定一个数字n,要求0-n的二进制形式下,连续11的个数. 思路:和 UVA 11038 这题类似,枚举中间,然后处理两边的情况. 不过本题最大的答案会超过longlong,要用高精度,不过借鉴http://www.cnblogs.com/TO-Asia/p/3214706.html这个人的方法,直接用两个数字来保存一个数字,这样能保存到2个longlong的长度,就足够存放这题的答案了. 代码: #include <stdio.h> #include

在linux中添加ftp用户,并设置相应的权限

在linux中添加ftp用户,并设置相应的权限,操作步骤如下: 1.环境:ftp为vsftp.被限制用户名为test.被限制路径为/home/test 2.建用户:在root用户下: useradd -d /home/test test //增加用户test,并制定test用户的主目录为/home/testpasswd test //为test设置密码 3.更改用户相应的权限设置: usermod -s /sbin/nologin test //限定用户test不能telnet,只能ftpuse

CentOS 6下配置本地用户访问vsftpd并赋予写权限

一.安装并测试可用性 1.安装命令 yum install vsftpd 2.配置防火墙,加入一行 -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT 在其它机测试telnet 192.168.0.1 21   3.开机服务 chkconfig --level  2345  vsftpd  on   4.启动服务 /etc/init.d/vsftpd start     二.配置本地用户访问,并赋予写权限 1.配置vsftpd.conf文件 vi vsftpd

25 包和访问权限

将类放到一个包中,需要使用package"包名" 编译时需要使用-d参数,该参数的作用是依照包名生成相应的文件夹 一个类的全名应该是"包名"+"."+"类名" 包名命名规范: 包名所有的字母小写 包名一般情况下,是你的域名倒过来写 java 当中的访问权限 public :公共权限  //可以修饰类.成员变量和成员函数 没有任何限制,在不同的包中都可以访问 private:私有权限  // 可以修饰成员变量和成员函数 只能在本

包和访问权限(二)

1.Java当中的访e:问权限 1.public:公共权限 public String name; 既可以修饰类又可以修饰成员变量和成员函数: 如果一个类的权限声明为public,那么类名必须与.java文件名必须相同 如果一个类的权限不是public,就无法从外部类中进行访问在 在一个包的外部来调用对象的某一个成员变量或成员函数那么要求这个成员变量或成员函数必须是public权限 总结:没有任何限制,同一个包当中,或者不同包当中的类都可以自由访问 2.private:私有权限 private

java4android (包和访问权限)

什么是Java当中的软件包? 为什么要使用软件包? 如何给一个类打包? //将类放置到一个包中,需要使用package"包名" //打包 编译的方法 javac -d . Test.java //出现错误:编码GBK的不可映射字符 javac -encoding UTF-8 -d . Test.java //-d 根据包名safiri生成文件夹 .的意思是在当前目录下生成safiri文件夹 //一个类的全名应该是"包名"+"."+"类名

包和访问权限(三)

1. 访问权限与继承 2. protected权限 1. 访问权限与继承 跨包继承需要public 权限 2. protected权限 和default一样的功能, 但该权限只能修饰成员变量和成员函数 protected允许跨包继承, 其与public区别是: public是跨包任何类都可访问 , protected只有其子类才能访问父类的protected!!!! 权限大小:public > protected > default > private 一个类或一个成员函数或变量, 其权