[Oracle] SYS_CONTEXT , USERENV 를 이용하여 현재 세션 정보를 가져오기 , get userenv current session

SYS_CONTEXT USERENV

SYS_CONTEXT 함수 USERENV 네임스페이스를 통한 현재 세션정보를 조회하는 방법에 대해 안내해드리겠습니다.

문법(syntax)은 다음과 같습니다. => SYS_CONTEXT ( 'namespace', 'parameter' [, length ] )

SYS_CONTEXT

context 의 사전적인 의미는 문맥, 맥락입니다. 환경/구성 정도로 해석할 수 있습니다! 시스템 환경 설정을 조회할 수 있도록 도움을 주는 함수입니다.

namespace

namespace 인수에는 오라클 내장스페이스 'USERENV' 를 사용할 수 있습니다. 'USERENV'를 입력하는 경우 현재 세션 정보를 파악할 수 있도록 지원합니다.

parameter

네임스페이스에 'USERENV'를 입력하는 경우, 설정할 수 있는 매개변수가 별도로 존재합니다. 잘못 입력하거나 없는 값을 입력하는 경우, 오류 혹은 NULL을 반환할 것입니다.

다음은 오라클19 문서 기준으로 조회한 결과입니다. 제가 11g를 사용하고 있어서 조회가 안 되는 것은 -- 표시로 주석처리했습니다.

--ORACLE 19 기준입니다

SELECT 
       SYS_CONTEXT ('USERENV', 'ACTION'),
       --SYS_CONTEXT ('USERENV', 'IS_APPLICATION_ROOT'),
       --SYS_CONTEXT ('USERENV', 'IS_APPLICATION_PDB'),
       SYS_CONTEXT ('USERENV', 'AUDITED_CURSORID'),
       SYS_CONTEXT ('USERENV', 'AUTHENTICATED_IDENTITY'),
       SYS_CONTEXT ('USERENV', 'AUTHENTICATION_DATA'),
       SYS_CONTEXT ('USERENV', 'AUTHENTICATION_METHOD'),
       SYS_CONTEXT ('USERENV', 'BG_JOB_ID'),
       --SYS_CONTEXT ('USERENV', 'CDB_DOMAIN'),
       --SYS_CONTEXT ('USERENV', 'CDB_NAME'),
       SYS_CONTEXT ('USERENV', 'CLIENT_IDENTIFIER'),
       SYS_CONTEXT ('USERENV', 'CLIENT_INFO'),
       --SYS_CONTEXT ('USERENV', 'CLIENT_PROGRAM_NAME'),
       --SYS_CONTEXT ('USERENV', 'CON_ID'),
       --SYS_CONTEXT ('USERENV', 'CON_NAME'),
       SYS_CONTEXT ('USERENV', 'CURRENT_BIND'),
       SYS_CONTEXT ('USERENV', 'CURRENT_EDITION_ID'),
       SYS_CONTEXT ('USERENV', 'CURRENT_EDITION_NAME'),
       SYS_CONTEXT ('USERENV', 'CURRENT_SCHEMA'),
       SYS_CONTEXT ('USERENV', 'CURRENT_SCHEMAID'),
       SYS_CONTEXT ('USERENV', 'CURRENT_SQL'),
       SYS_CONTEXT ('USERENV', 'CURRENT_SQLn'),
       SYS_CONTEXT ('USERENV', 'CURRENT_SQL_LENGTH'),
       SYS_CONTEXT ('USERENV', 'CURRENT_USER'),
       SYS_CONTEXT ('USERENV', 'CURRENT_USERID'),
       SYS_CONTEXT ('USERENV', 'DATABASE_ROLE'),
       SYS_CONTEXT ('USERENV', 'DB_DOMAIN'),
       SYS_CONTEXT ('USERENV', 'DB_NAME'),
       --SYS_CONTEXT ('USERENV', 'DB_SUPPLEMENTAL_LOG_LEVEL'),
       SYS_CONTEXT ('USERENV', 'DB_UNIQUE_NAME'),
       SYS_CONTEXT ('USERENV', 'DBLINK_INFO'),
       SYS_CONTEXT ('USERENV', 'ENTRYID'),
       SYS_CONTEXT ('USERENV', 'ENTERPRISE_IDENTITY'),
       SYS_CONTEXT ('USERENV', 'FG_JOB_ID'),
       SYS_CONTEXT ('USERENV', 'GLOBAL_CONTEXT_MEMORY'),
       SYS_CONTEXT ('USERENV', 'GLOBAL_UID'),
       SYS_CONTEXT ('USERENV', 'HOST'),
       SYS_CONTEXT ('USERENV', 'IDENTIFICATION_TYPE'),
       SYS_CONTEXT ('USERENV', 'INSTANCE'),
       SYS_CONTEXT ('USERENV', 'INSTANCE_NAME'),
       SYS_CONTEXT ('USERENV', 'IP_ADDRESS'),
       --SYS_CONTEXT ('USERENV', 'IS_APPLY_SERVER'),
       --SYS_CONTEXT ('USERENV', 'IS_DG_ROLLING_UPGRADE'),
       SYS_CONTEXT ('USERENV', 'ISDBA'),
       SYS_CONTEXT ('USERENV', 'LANG'),
       SYS_CONTEXT ('USERENV', 'LANGUAGE'),
       --SYS_CONTEXT ('USERENV', 'LDAP_SERVER_TYPE'),
       SYS_CONTEXT ('USERENV', 'MODULE'),
       SYS_CONTEXT ('USERENV', 'NETWORK_PROTOCOL'),
       SYS_CONTEXT ('USERENV', 'NLS_CALENDAR'),
       SYS_CONTEXT ('USERENV', 'NLS_CURRENCY'),
       SYS_CONTEXT ('USERENV', 'NLS_DATE_FORMAT'),
       SYS_CONTEXT ('USERENV', 'NLS_DATE_LANGUAGE'),
       SYS_CONTEXT ('USERENV', 'NLS_SORT'),
       SYS_CONTEXT ('USERENV', 'NLS_TERRITORY'),
       --SYS_CONTEXT ('USERENV', 'ORACLE_HOME'),
       SYS_CONTEXT ('USERENV', 'OS_USER'),
       --SYS_CONTEXT ('USERENV', 'PLATFORM_SLASH'),
       SYS_CONTEXT ('USERENV', 'POLICY_INVOKER'),
       SYS_CONTEXT ('USERENV', 'PROXY_ENTERPRISE_IDENTITY'),
       SYS_CONTEXT ('USERENV', 'PROXY_USER'),
       SYS_CONTEXT ('USERENV', 'PROXY_USERID'),
       --SYS_CONTEXT ('USERENV', 'SCHEDULER_JOB'),
       --SYS_CONTEXT ('USERENV', 'SERVER_HOST'),
       SYS_CONTEXT ('USERENV', 'SERVICE_NAME'),
       --SYS_CONTEXT ('USERENV', 'SESSION_DEFAULT_COLLATION'),
       SYS_CONTEXT ('USERENV', 'SESSION_EDITION_ID'),
       SYS_CONTEXT ('USERENV', 'SESSION_EDITION_NAME'),
       SYS_CONTEXT ('USERENV', 'SESSION_USER'),
       SYS_CONTEXT ('USERENV', 'SESSION_USERID'),
       SYS_CONTEXT ('USERENV', 'SESSIONID'),
       SYS_CONTEXT ('USERENV', 'SID'),
       SYS_CONTEXT ('USERENV', 'STATEMENTID'),
       SYS_CONTEXT ('USERENV', 'TERMINAL')
  --,SYS_CONTEXT ('USERENV', 'UNIFIED_AUDIT_SESSIONID')
  FROM DUAL;

댓글