1. 程式人生 > >Oracle 非dba使用者 使用 set autotrace 功能

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;   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;