在开发过程中,对于应用程序我们都应该建一个单独的用户,并且这个用户不具有DBA权限,今天在用该用户分析sql执行计划时,报以下错误信息:SP2-0618: 无法找到会话标识符。启用检查 PLUSTRACE 角色
C:\>sqlplus myuser/******@orcl
SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 3月 12 10:34:08 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> set autotrace traceonly;
SP2-0618: 无法找到会话标识符。启用检查 PLUSTRACE 角色
SP2-0611: 启用 STATISTICS 报告时出错
C:\>sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 3月 12 10:11:58 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
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;
授权成功。
(在此步很多人以为会直接分配给自己的用户了,可却分配给了DBA,看到with admin option自然就明白了)
SQL>
SQL> set echo off
SQL> grant plustrace to myuser;
授权成功。
SQL>
C:\>sqlplus myuser/******@orcl
SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 3月 12 10:34:08 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> set autotrace traceonly;
SQL>
权限分配成功。