Oracle 非dba用户 使用 set autotrace 功能

sql> conn zw/zw
Connected.
sql> set autotrace traceonly;
SP2-0618: Cannot find the Session Identifier. Check PLUSTRACE role is enabled
SP2-0611: Error enabling STATISTICS report
sql>

错误可以看出两点:一是跟角色plustrace有关,另外跟用户对于特定视图的权限有关。


方法一:

直接使用DBA用户,或者给你的用户赋权DBA,这样就不会有权限问题了。但通常情况下,不应该给其他用户赋权DBA。
grant dba to zw;
sql> conn zw/zw
Connected.
sql> set autotrace traceonly;


方法二:

我们可以直接解决用户权限然后解决这个问题,首先,切换到DBA用户登录,然后使用以下语句直接给特定用户如scott赋权:

sql> grant select on v_$sesstat to zw;
sql> grant select on v_$statname to zw;
sql> grant select on v_$mystat to zw;

sql> conn zw/zw
Connected.
sql> set autotrace traceonly;
sql>

回收权限
sql>revoke select on v_$sesstat from zw;
sql>revoke select on v_$statname from zw;
sql>revoke select on v_$mystat from zw;

又不能用了
sql> conn zw/zw
Connected.
sql> set autotrace traceonly;
SP2-0618: Cannot find the Session Identifier. Check PLUSTRACE role is enabled
SP2-0611: Error enabling STATISTICS report

然后再使用 set autotrace on 就不出有错误了。

方法三:

创建plustrace角色,然后将角色赋给特定用户。Oracle已经提供了角色plustrace的创建脚本

@/u01/app/oracle/product/11.2.0.4/db_1/sqlplus/admin/plustrce.sql


把角色赋权给zw用户

sql> grant plustrace to zw;

sql> conn zw/zw
Connected.
sql> set autotrace traceonly;

把角色赋予给所有用户

sql> grant plustrace to public;

相关文章

数据库版本:11.2.0.4 RAC(1)问题现象从EM里面可以看到,在23号早上8:45~8:55时,数据库等待会话暴增...
(一)问题背景最近在对一个大约200万行数据的表查看执行计划时,发现存在异常,理论上应该返回100多万...
(一)删除备份--DELETE命令用于删除RMAN备份记录及相应的物理文件。当使用RMAN执行备份操作时,会在RM...
(1)DRA介绍 数据恢复顾问(Data Recovery Advise)是一个诊断和修复数据库的工具,DRA能够修复数据文...
RMAN(Recovery Manager)是Oracle恢复管理器的简称,是集数据库备份(backup)、修复(restore)和恢复...
(1)备份对象 可以使用RMAN进行的备份对象如下: --整个数据库:备份所有的数据文件和控制文件; --数...