ITPub博客

首页 > 数据库 > Oracle > 授权普通用户autotrace

授权普通用户autotrace

Oracle 作者:彩伦 时间:2016-06-07 17:14:57 0 删除 编辑

做测试时,用普通用户查看ORACLE执行计划时发现普通用户没有autotrace权限,报错如下:

SQL> set autotrace trace

SP2-0618: Cannot find the Session Identifier.  Check PLUSTRACE role is enabled

SP2-0611: Error enabling STATISTICS report

缺少plustrace权限,记录一下处理过程。

 

通过以下方法可以把Autotrace的权限授予Everyone,

如果你需要限制Autotrace权限,可以把对public的授权改为对特定user的授权。

 

SQL> conn / as sysdba

Connected.

 

SQL> @?/rdbms/admin/utlxplan

Table created.

 

SQL> create public synonym plan_table for plan_table;

create public synonym plan_table for plan_table

                      *

ERROR at line 1:

ORA-00955: name is already used by an existing object

 

SQL> grant all on plan_table to public;

Grant succeeded.

 

SQL> @?/sqlplus/admin/plustrce

SQL> drop role plustrace;

drop role plustrace

          *

ERROR at line 1:

ORA-01919: role 'PLUSTRACE' does not exist

 

SQL> create role plustrace;

Role created.

 

SQL> grant select on v_$sesstat to plustrace;

Grant succeeded.

 

SQL> grant select on v_$statname to plustrace;

Grant succeeded.

 

SQL> grant select on v_$mystat to plustrace;

Grant succeeded.

 

SQL> grant plustrace to dba with admin option;

Grant succeeded.

SQL> set echo off

 

DBA用户首先被授予了plustrace角色,然后我们可以把plustrace授予public

这样所有用户都将拥有plustrace角色的权限.

 

SQL> grant plustrace to public;

Grant succeeded.

然后我们就可以使用AutoTrace的功能了.

 

 

 

关于Autotrace几个常用选项的说明:

SET AUTOTRACE OFF ---------------- 不生成AUTOTRACE 报告,这是缺省模式

SET AUTOTRACE ON EXPLAIN ------ AUTOTRACE只显示优化器执行路径报告

SET AUTOTRACE ON STATISTICS -- 只显示执行统计信息

SET AUTOTRACE ON ----------------- 包含执行计划和统计信息

SET AUTOTRACE TRACEONLY ------ 同set autotrace on,但是不显示查询输出

 

 

 

reference                            http://www.eygle.com/faq/AutoTrace.htm

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30130773/viewspace-2116981/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: BLOB字段模糊查询
请登录后发表评论 登录
全部评论

注册时间:2015-02-06

  • 博文量
    138
  • 访问量
    892117