首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 教學

解決 SP2-0618 無法找到會話標識符:PLUSTRACE 角色建立與授權完整步驟

     編輯:Oracle 教學

解決 SP2-0618 無法找到會話標識符:PLUSTRACE 角色建立與授權完整步驟

錯誤現象

SQL> SET AUTOTRACE ON;
SP2-0618: 無法找到會話標識符。啟用檢查 PLUSTRACE 角色
SP2-0611: 啟用 STATISTICS 報告時出錯

原因:SET AUTOTRACE ON 需要 PLUSTRACE 角色權限,預設未建立或未授權。

完整修復步驟

1. 以 SYSDBA 登入並執行官方腳本

SQL> CONN / AS SYSDBA
SQL> @$ORACLE_HOME/sqlplus/admin/plustrce.sql

腳本內容:建立角色、授予必要視圖查詢權限、授予 DBA。

2. 手動建立與授權(若腳本缺失或需自訂)

-- 重建角色
DROP ROLE plustrace;
CREATE ROLE plustrace;

-- 授予 AUTOTRACE 所需的動態視圖查詢權限
GRANT SELECT ON v_$sesstat TO plustrace;
GRANT SELECT ON v_$statname TO plustrace;
GRANT SELECT ON v_$mystat TO plustrace;

-- 授予 DBA 角色(含 ADMIN OPTION 可轉授)
GRANT plustrace TO dba WITH ADMIN OPTION;

3. 一般用戶授權(關鍵步驟)

-- 必須授予實際使用 AUTOTRACE 的用戶或 PUBLIC
GRANT plustrace TO scott;  -- 或 GRANT plustrace TO PUBLIC;

4. 驗證

SQL> CONN scott/tiger
SQL> SET AUTOTRACE ON;
-- 成功,無錯誤訊息

權限對照表

視圖/權限用途
V_$SESSTAT會話級統計資訊
V_$STATNAME統計名稱定義
V_$MYSTAT當前會話統計

AUTOTRACE 讀取上述視圖顯示執行統計(邏輯讀、物理讀、排序等),缺少權限即拋出 SP2-0618。

常見誤區

  • 只執行 plustrce.sql 未授予目標用戶 → 仍報錯
  • 授予 DBA 角色但目標用戶非 DBA → 無效
  • Oracle 12c+ CDB/PDB 架構下需在正確容器中執行授權

補充:AUTOTRACE 模式說明

SET AUTOTRACE ON        -- 顯示執行計劃 + 統計
SET AUTOTRACE TRACEONLY -- 僅顯示計劃/統計,不輸出查詢結果
SET AUTOTRACE OFF       -- 關閉
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved