首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Oracle 9i SYS_CONTEXT('USERENV', ...) 完整參數手冊:從認證方式到會話屬性 50+ 屬性速查

     編輯:Oracle 資料庫相關知識

語法

SELECT SYS_CONTEXT('USERENV', '參數名') FROM DUAL;

完整屬性表 (節選重點)

參數含義 / 返回值示例
AUTHENTICATION_TYPEDATABASE / OS / NETWORK / PROXY
CLIENT_INFODBMS_APPLICATION_INFO.SET_CLIENT_INFO 設置的用戶信息 (≤64 字節)
CURRENT_SCHEMA當前默認 Schema (可 ALTER SESSION SET CURRENT_SCHEMA 修改)
CURRENT_USER / CURRENT_USERID當前會話生效權限的用戶名 / ID
DB_DOMAIN / DB_NAME初始化參數 DB_DOMAIN / DB_NAME
HOST客戶端主機名
IP_ADDRESS客戶端 IP 地址
ISDBATRUE (若為 SYS 登錄)
LANGISO 語言縮寫 (如 ZHS)
LANGUAGE完整語言_地區.字符集 (如 AMERICAN_AMERICA.ZHS16GBK)
NETWORK_PROTOCOL連接協議 (TCP、IPC、BEQ 等)
NLS_CALENDAR / NLS_CURRENCY / NLS_DATE_FORMAT / NLS_DATE_LANGUAGE / NLS_SORT / NLS_TERRITORY會話級 NLS 參數
OS_USER客戶端作業系統用戶名
PROXY_USER / PROXY_USERID代理連接的發起用戶名 / ID
SESSION_USER / SESSION_USERID認證用戶名 / ID (會話全程不變)
SESSIONID審計會話 ID (AUDSID)
TERMINAL客戶端終端標識 (分布式查詢返回本地會話標識)
AUTHENTICATION_DATA認證原始數據 (X.509 證書 HEX 等),可通過長度參數截取
BG_JOB_ID / FG_JOB_ID後台/前台作業 ID (DBMS_JOB/DBMS_SCHEDULER)
ENTRYID審計條目 ID (需 AUDIT_TRAIL=TRUE)
EXTERNAL_NAME外部用戶名 (SSL 證書 DN)
INSTANCE實例識別號 (RAC 節點號)
MODULE / ACTIONDBMS_APPLICATION_INFO.SET_MODULE/ACTION 設置

典型應用場景

  • 審計觸發器:SYS_CONTEXT('USERENV','SESSION_USER') 記錄真實操作者。
  • VPD (Virtual Private Database):策略函數中根據 CLIENT_INFO/CURRENT_SCHEMA 動態拼接 Predicate。
  • 多租戶隔離:SYS_CONTEXT('USERENV','CON_ID') (12c+) 獲取容器 ID。
  • 異構訪問審計:OS_USER + IP_ADDRESS 追踪中間層連接池後的真實用戶。

長度參數用法

-- 截取前 100 字節認證數據
SELECT SYS_CONTEXT('USERENV','AUTHENTICATION_DATA',100) FROM DUAL;
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved