set autotrace on SP2-0618: 无法找到会话标识符。启用检查 PLUSTRACE 角色 SP2-0611: 启用 STATISTICS 报告时出错

scott用户执行set autotrace on报错:

SQL> set autotrace on
SP2-0618: 无法找到会话标识符。启用检查 PLUSTRACE 角色
SP2-0611: 启用 STATISTICS 报告时出错

原因:

用户没有PLUSTRACE角色权限

解决办法:

  1. 以sys用户,执行下面二个sql文件
    1)执行$ORACLE_HOME/sqlplus/admin/plustrce.sql ,创建角色
    2)执行$ORACLE_HOME/rdbms/admin/utlxplan.sql,创建plan_table表
    文件内容:
    在这里插入图片描述
    执行文件:
    SQL> @D:\app\Administrator\product\11.2.0\dbhome_1\sqlplus\admin\plustrce.sql
    #以下为plustrce.sql的执行代码:
    SQL>
    SQL> drop role plustrace;
    drop role plustrace
              *1 行出现错误:
    ORA-01919: 角色 'PLUSTRACE' 不存在
    
    
    SQL> create role plustrace;
    
    角色已创建。
    
    SQL>
    SQL> grant select on v_$sesstat to plustrace;
    
    授权成功。
    
    SQL> grant select on v_$statname to plustrace;
    
    授权成功。
    
    SQL> grant select on v_$mystat to plustrace;
    
    授权成功。
    
    SQL> grant plustrace to dba with admin option;
    
    授权成功。
    
    SQL>
    SQL> set echo off
    SQL> @D:\app\Administrator\product\11.2.0\dbhome_1\RDBMS\ADMIN\utlxplan.sql
    
    表已创建。
    
  2. 给用户赋予plustrace角色权限。
    SQL> grant plustrace to scott;
    SQL> grant select any dictionary toscott;
    
  3. 测试
    退出后再次测试成功
    在这里插入图片描述

后续

报错ORA-01039: 视图基本对象的权限不足


执行计划
----------------------------------------------------------
ERROR:
ORA-01039: 视图基本对象的权限不足


SP2-0612: 生成 AUTOTRACE EXPLAIN 报告时出错

统计信息
----------------------------------------------------------
          0  recursive calls
          0  db block gets
       1520  consistent gets
          0  physical reads
          0  redo size
        793  bytes sent via SQL*Net to client
        427  bytes received via SQL*Net from client
          3  SQL*Net roundtrips to/from client
          1  sorts (memory)
          0  sorts (disk)
         16  rows processed

需要给scott再授权grant select any dictionary to scott;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章