본문 바로가기

[오라클 레퍼런스 함수] SYS_CONTEXT - 네임스페이스(namespace)에 연결된 파라미터(parameter) 값 반환

by ㅇㅍㅍ 2023. 8. 24.
[오라클 레퍼런스 함수] SYS_CONTEXT - 네임스페이스(namespace)에 연결된 파라미터(parameter) 값 반환
728x90

 

 

 

 

 

SYS_CONTEXT

 

구문

SYS_CONTEXT('namespace', 'parameter' [, length ])

 

목적

SYS_CONTEXT 함수는 현재 시점에서 컨텍스트 namespace와 연결된 parameter의 값을 반환합니다. 이 함수는 SQL 및 PL/SQL 문에서 사용할 수 있으며, SYS_CONTEXT는 로컬에서 실행되어야 합니다.

namespaceparameter에 대해 문자열 또는 문자열로 해석되는 표현식을 지정할 수 있습니다. namespaceparameter에 리터럴 인수를 지정하고 SYS_CONTEXT를 PL/SQL 함수 내에서 사용하는 대신 SQL 문에서 직접 사용하는 경우 SYS_CONTEXT 함수를 호출하는 각 위치에 대해 Oracle Database는 SQL 문 실행 당 한 번만 SYS_CONTEXT를 평가합니다.

컨텍스트 namespace는 이미 만들어져 있어야 하며, 관련된 parameter와 그 값을 설정하는 데 DBMS_SESSION.set_context 프로시저를 사용해야 합니다. namespace는 유효한 식별자여야 합니다. parameter 이름은 문자열일 수 있습니다. 대소문자 구분되지 않지만 30바이트를 초과할 수 없습니다.

반환 값의 데이터 유형은 VARCHAR2입니다. 반환 값의 기본 최대 크기는 256바이트입니다. 이 기본값을 NUMBER 또는 NUMBER로 암시적으로 변환할 수 있는 값으로 지정하는 선택적인(optional) length parameter를 지정하여 재정의할 수 있습니다. 유효한 값 범위는 1에서 4000바이트까지입니다. 잘못된 값을 지정하면 Oracle Database는 무시하고 기본값을 사용합니다.

Oracle은 다음과 같은 내장 네임스페이스를 제공합니다:

  • USERENV - 현재 세션에 대한 정보를 제공합니다. 네임스페이스 USERENV의 미리 정의된 매개변수는 표 7-11에 나열되어 있습니다.

  • SYS_SESSION_ROLES - 지정된 역할이 현재 세션에서 활성화되어 있는지를 나타냅니다. Oracle Database는 SYS_SESSION_ROLES 컨텍스트를 현재 사용자에 대해 평가하고, 정의된 사용자의 역할을 평가할 때 SYS_SESSION_ROLES를 사용합니다. 정의자의 권한 프로시저 또는 함수 내에서 SYS_SESSION_ROLES를 사용하여 로그인 사용자의 활성화된 역할을 찾는 대안은 DBMS_SESSION:SESSION_IS_ROLE_ENABLED 함수를 사용하는 것입니다. 인보커 권한, 정의자의 권한을 가진 프로시저 또는 함수, 코드 기반 액세스 제어(CBAC)도 대체 방법입니다.

 

참고:

 

예제

다음 문장은 데이터베이스에 로그인한 사용자의 이름을 반환합니다:

CONNECT OE
Enter password: password

SELECT SYS_CONTEXT ('USERENV', 'SESSION_USER') 
   FROM DUAL;

SYS_CONTEXT ('USERENV', 'SESSION_USER')
---------------------------------------
OE

 

다음 예제에서는 SESSION_ROLES 데이터 사전 뷰를 쿼리하여 현재 세션에서 활성화된 유일한 역할이 RESOURCE임을 보여줍니다. 그런 다음 SYS_CONTEXT 함수를 사용하여 현재 세션에서 RESOURCE 역할이 활성화되어 있고 DBA 역할은 활성화되어 있지 않음을 보여줍니다.

CONNECT OE
Enter password: password

SELECT role FROM session_roles;

ROLE
--------
RESOURCE

SELECT SYS_CONTEXT('SYS_SESSION_ROLES', 'RESOURCE')
  FROM DUAL

SYS_CONTEXT('SYS_SESSION_ROLES','RESOURCE')
--------------------------------------
TRUE

SELECT SYS_CONTEXT('SYS_SESSION_ROLES', 'DBA')
  FROM DUAL;

SYS_CONTEXT('SYS_SESSION_ROLES','DBA')
--------------------------------------
FALSE

 

노트: 이러한 예제는 이 기능을 간단히 보여주기 위한 것으로, 배포된 시스템이 보통 사용하는 암호 관리 기술을 수행하지 않습니다. 프로덕션 환경에서는 Oracle Database 암호 관리 가이드라인을 따르고 샘플 계정을 비활성화하세요. 암호 관리 가이드라인 및 다른 보안 권장 사항은 Oracle Database Security Guide를 참조하세요.

 

다음 가상의 예제는 hr_apps라는 컨텍스트에 연결된 PL/SQL 패키지에서 속성 group_no로 설정된 그룹 번호를 반환합니다.

SELECT SYS_CONTEXT ('hr_apps', 'group_no') "User Group" 
   FROM DUAL;

 

표 7-11 네임스페이스 USERENV의 미리 정의된 매개변수

Parameter Return Value
ACTION 모듈 (애플리케이션 이름) 내에서 위치를 식별하며, DBMS_APPLICATION_INFO 패키지나 OCI를 통해 설정됩니다.
IS_APPLICATION_ROOT 애플리케이션이 애플리케이션 루트인지 여부를 식별합니다.
IS_APPLICATION_PDB 컨테이너가 애플리케이션 PDB인지 여부를 식별합니다.
AUDITED_CURSORID 감사를 트리거한 SQL의 커서 ID를 반환합니다. 이 매개변수는 세밀한 감사 환경에서는 유효하지 않습니다. 세밀한 감사 환경에서 이를 지정하면 Oracle Database가 항상 null을 반환합니다.
AUTHENTICATED_IDENTITY 인증에 사용된 ID를 반환합니다. 아래 목록에서 사용자의 유형은 반환되는 값 뒤에 따릅니다:

• Kerberos로 인증된 엔터프라이즈 사용자: Kerberos 주체 이름 (kerberos principal name)
• Kerberos로 인증된 외부 사용자: Kerberos 주체 이름 (kerberos principal name); 스키마 이름과 동일
• SSL로 인증된 엔터프라이즈 사용자: 사용자의 PKI 인증서에서 DN (Distinguished Name)
• SSL로 인증된 외부 사용자: 사용자의 PKI 인증서에서 DN (Distinguished Name)
• 비밀번호로 인증된 엔터프라이즈 사용자: 별명 (nickname); 로그인 이름과 동일
• 비밀번호로 인증된 데이터베이스 사용자: 데이터베이스 사용자 이름; 스키마 이름과 동일
• OS로 인증된 외부 사용자: 외부 운영 체제 사용자 이름
• Radius로 인증된 외부 사용자: 스키마 이름
• DN을 가진 프록시: 클라이언트의 Oracle Internet Directory DN
• 인증서를 가진 프록시: 클라이언트의 인증서 DN
• 사용자 이름을 가진 프록시: 클라이언트가 로컬 데이터베이스 사용자인 경우 데이터베이스 사용자 이름; 클라이언트가 엔터프라이즈 사용자인 경우 별칭
• 비밀번호 파일을 사용한 SYSDBA/SYSOPER: 로그인 이름
• OS 인증을 사용한 SYSDBA/SYSOPER: 운영 체제 사용자 이름
• 비밀번호로 인증된 OCI IAM 사용자: IAM 사용자 이름; 로그인 이름과 동일
• IAM 토큰으로 인증된 엔터프라이즈 사용자: IAM 사용자 이름
AUTHENTICATION_DATA 로그인 사용자를 인증하는 데 사용되는 데이터입니다. X.503 인증 세션의 경우, 이 필드는 HEX2 형식으로 인증서의 컨텍스트를 반환합니다.

노트: 구문의 length parameter를 사용하여 AUTHENTICATION_DATA 속성의 반환 값을 변경할 수 있습니다. 최대 4000까지의 값을 허용합니다. Oracle Database에서는 USERENV의 유일한 속성으로 이러한 변경을 구현합니다.
AUTHENTICATION_METHOD 인증 방법을 반환합니다. 아래 목록에서 사용자 유형 다음에 반환되는 방법이 나와 있습니다.

• 패스워드로 인증된 엔터프라이즈 사용자, 로컬 데이터베이스 사용자 또는 패스워드 파일을 사용하는 SYSDBA 또는 SYSOPER 관리 권한을 가진 사용자; 패스워드를 사용하는 사용자 이름의 프록시: PASSWORD
• 패스워드로 인증된 엔터프라이즈 사용자, OCI IAM 사용자, 로컬 데이터베이스 사용자 또는 패스워드 파일을 사용하는 SYSDBA 또는 SYSOPER 관리 권한을 가진 사용자; 패스워드를 사용하는 사용자 이름의 프록시: PASSWORD_GLOBAL
• OCI IAM 토큰으로 인증된 엔터프라이즈 사용자: TOKEN_GLOBAL
• 패스워드 파일을 사용하여 인증된 엔터프라이즈 사용자 또는 외부 사용자 (관리 권한 없음): KERBEROS
• 관리 권한을 가진 엔터프라이즈 사용자로 인증된 Kerberos 인증 사용자: KERBEROS_GLOBAL
• 관리 권한을 가진 외부 사용자로 인증된 Kerberos 인증 사용자: KERBEROS_EXTERNAL
• 관리 권한 없이 SSL로 인증된 엔터프라이즈 또는 외부 사용자: SSL
• 관리 권한을 가진 엔터프라이즈 사용자로 인증된 SSL 사용자: SSL_GLOBAL
• 관리 권한을 가진 외부 사용자로 인증된 SSL 사용자: SSL_EXTERNAL
• Radius로 인증된 외부 사용자: RADIUS
• 외부 사용자 또는 SYSDBA 또는 SYSOPER 관리 권한을 가진 사용자로 OS로 인증된 사용자: OS
• 패스워드를 사용하지 않고 인증서, DN 또는 사용자 이름을 사용한 프록시: NONE
• 백그라운드 프로세스 (작업 대기열 슬레이브 프로세스): JOB
• 병렬 쿼리 슬레이브 프로세스: PQ_SLAVE

관리 권한이 없는 연결의 경우, 패스워드, KERBEROS 또는 SSL 인증 방법을 사용하는 경우, IDENTIFICATION_TYPE를 사용하여 외부 및 엔터프라이즈 사용자를 구별할 수 있습니다. 관리 연결의 경우, 패스워드, SSL_EXTERNAL 및 SSL_GLOBAL 인증 방법의 경우 AUTHENTICATION_METHOD만으로 충분합니다.
BG_JOB_ID 현재 세션이 Oracle Database 백그라운드 프로세스에 의해 설정되었을 경우 해당 백그라운드 프로세스의 Job ID를 반환합니다. 백그라운드 프로세스에 의해 설정되지 않았을 경우 null을 반환합니다.
CDB_DOMAIN CDB_DOMAIN은 CDB의 DB_DOMAIN이며 이와 관련된 모든 PDB에 대해 동일합니다.
CDB_NAME CDB에 연결된 경우 CDB의 이름을 반환합니다. 그렇지 않으면 null을 반환합니다.
CLIENT_IDENTIFIER 응용 프로그램에서 DBMS_SESSION.SET_IDENTIFIER 프로시저, OCI 속성 OCI_ATTR_CLIENT_IDENTIFIER 또는 Oracle Dynamic Monitoring Service (DMS)를 통해 설정된 식별자를 반환합니다. 이 속성은 동일한 데이터베이스 사용자로 인증하는 가벼운 응용 프로그램 사용자를 식별하는 데 여러 데이터베이스 구성 요소에서 사용됩니다.
CLIENT_INFO DBMS_APPLICATION_INFO 패키지를 사용하여 응용 프로그램에서 저장할 수 있는 최대 64바이트의 사용자 세션 정보를 반환합니다.
CLIENT_PROGRAM_NAME 데이터베이스 세션에 사용된 프로그램의 이름을 반환합니다.
CON_ID CDB에 연결된 상태에서 현재 컨테이너 ID를 반환합니다. 그렇지 않으면 0을 반환합니다.
CON_NAME CDB에 연결된 상태에서 현재 컨테이너 이름을 반환합니다. 그렇지 않으면 DB_NAME 초기화 매개변수에서 지정한 데이터베이스 이름을 반환합니다.
CURRENT_BIND 세밀한 그레인드 감사 기능의 이벤트 핸들러 내에서만 이 속성을 지정할 수 있으며, 세밀한 그레인드 감사를 위한 바인드 변수를 반환합니다.
CURRENT_EDITION_ID 현재 에디션의 식별자를 반환합니다.
CURRENT_EDITION_NAME 현재 에디션의 이름을 반환합니다.
CURRENT_SCHEMA 현재 활성화된 기본 스키마의 이름을 반환합니다. 이 값은 ALTER SESSION SET CURRENT_SCHEMA 문을 사용하여 세션의 기간 동안 변경될 수 있습니다. 세션 동안 사용 중인 definer's rights 개체의 소유자를 반영하기 위해도 변경될 수 있습니다. 뷰 정의의 본문에서 직접 사용될 때, 이것은 뷰를 사용하는 커서를 실행할 때 사용된 기본 스키마를 반환하며 뷰 내부에서 definer's rights로 사용되는 뷰를 고려하지 않습니다.

노트: Oracle은 로그온 트리거를 제외한 모든 유형의 저장된 PL/SQL 단위 내에서 ALTER SESSION SET CURRENT_SCHEMA SQL 문을 실행하지 않는 것을 권장합니다.
CURRENT_SCHEMAID 현재 활성화된 기본 스키마의 식별자를 반환합니다.
CURRENT_SQL
CURRENT_SQLn
CURRENT_SQL은 세밀한 그레인드 감사 이벤트를 트리거한 현재 SQL의 첫 4K 바이트를 반환합니다. CURRENT_SQLn 속성은 나머지 4K 바이트의 증가분을 반환하며, n은 1에서 7 사이의 정수일 수 있습니다. 예를 들어, CURRENT_SQL1은 4K에서 8K까지의 바이트를 반환하고, CURRENT_SQL2는 8K에서 12K까지의 바이트를 반환합니다. 이러한 속성은 세밀한 그레인드 감사 기능의 이벤트 핸들러 내에서만 지정할 수 있습니다.
CURRENT_SQL_LENGTH 세밀한 그레인드 감사 기능 또는 행 수준 보안 (RLS) 정책 함수 또는 이벤트 핸들러를 트리거하는 현재 SQL 문의 길이를 반환합니다. 이 속성은 세밀한 그레인드 감사 기능의 이벤트 핸들러 내에서만 지정할 수 있습니다.
CURRENT_USER 현재 활성화된 권한을 가진 데이터베이스 사용자의 이름을 반환합니다. 이 값은 Real Application Security 세션이 연결 또는 연결 해제되거나 활성 definer's rights 개체를 반영하기 위해 세션 동안 변경될 수 있습니다. 활성 definer's rights 개체가 없을 때, CURRENT_USERSESSION_USER와 동일한 값을 반환합니다. 뷰 정의의 본문에서 직접 사용될 때, 이것은 뷰를 사용하는 커서를 실행하는 사용자를 반환하며 뷰 내부에서 definer's rights로 사용되는 뷰를 고려하지 않습니다. 기업 사용자의 경우 스키마를 반환합니다. 현재 활성화된 Real Application Security 사용자가 있는 경우 XS$NULL 사용자를 반환합니다.

참고: 사용자 XS$NULL에 대한 자세한 정보는 Oracle Database 2 Day + Security Guide를 참조하십시오.
CURRENT_USERID 현재 활성화된 권한을 가진 데이터베이스 사용자의 식별자를 반환합니다.
DATABASE_ROLE USERENV 네임스페이스를 사용하여 SYS_CONTEXT 함수를 이용해 검색한 데이터베이스 역할입니다. 역할은 PRIMARY, PHYSICAL STANDBY, LOGICAL STANDBY, SNAPSHOT STANDBY 중 하나입니다.
DB_DOMAIN DB_DOMAIN 초기화 매개변수에 지정된 데이터베이스 도메인입니다.
DB_NAME DB_NAME 초기화 매개변수에 지정된 데이터베이스 이름입니다.
DB_SUPPLEMENTAL_LOG_LEVEL 보조 로깅이 활성화되어 있으면 활성화된 보조 로깅 레벨 목록을 포함한 문자열을 반환합니다. 가능한 값은 ALL_COLUMN, FOREIGN_KEY, MINIMAL, PRIMARY_KEY, PROCEDURALUNIQUE_INDEX입니다. 보조 로깅이 비활성화되어 있으면 null을 반환합니다.
DB_UNIQUE_NAME DB_UNIQUE_NAME 초기화 매개변수에 지정된 데이터베이스 고유 이름입니다.
DBLINK_INFO 데이터베이스 링크 세션의 소스를 반환합니다. 구체적으로 다음 형식의 문자열을 반환합니다:

SOURCE_GLOBAL_NAME=dblink_src_global_name, DBLINK_NAME=dblink_name, SOURCE_AUDIT_SESSIONID=dblink_src_audit_sessionid

여기서:

dblink_src_global_name은 소스 데이터베이스의 고유 글로벌 이름입니다.
dblink_name은 소스 데이터베이스의 데이터베이스 링크의 이름입니다.
dblink_src_audit_sessioniddblink_name을 사용하여 원격 데이터베이스에 대한 연결을 시작한 소스 데이터베이스의 세션의 감사 세션 ID입니다.
DRAIN_STATUS 현재 세션의 드레인 상태를 표시합니다. 세션이 드레인 후보인 경우 DRAINING을 반환하고, 그렇지 않으면 NONE을 반환합니다.
ENTRYID 현재 감사 항목 번호입니다. 감사 entryid 시퀀스는 세부 감사 레코드와 일반 감사 레코드 간에 공유됩니다. 이 속성을 분산 SQL 문에서 사용할 수 없습니다. 올바른 감사 항목 식별자는 표준 또는 세밀한 감사를 위한 감사 핸들러를 통해서만 볼 수 있습니다.
ENTERPRISE_IDENTITY 사용자의 엔터프라이즈 전체 ID를 반환합니다:
• 엔터프라이즈 사용자의 경우: Oracle Internet Directory DN.
• 외부 사용자의 경우: 외부 ID (Kerberos 주체 이름, Radius 스키마 이름, OS 사용자 이름, 인증서 DN).
• 로컬 사용자 및 SYSDBA/SYSOPER 로그인의 경우: NULL.

이 속성의 값은 프록시 방법에 따라 다릅니다:
• DN을 가진 프록시의 경우: 클라이언트의 Oracle Internet Directory DN
• 인증서를 가진 프록시의 경우: 외부 사용자의 클라이언트의 인증서 DN; 전역 사용자의 경우 Oracle Internet Directory DN
• 사용자 이름을 가진 프록시의 경우: 엔터프라이즈 사용자인 경우 Oracle Internet Directory DN; 로컬 데이터베이스 사용자인 경우 Null

OCI IAM 사용자의 경우: Oracle Cloud Identifier (OCID).
FG_JOB_ID DBMS_JOB 패키지를 사용하여 생성된 작업 내에서 쿼리된 경우, 현재 세션이 클라이언트 전경 프로세스에 의해 설정된 경우 현재 세션의 작업 ID를 반환합니다. 전경 프로세스에 의해 세션이 설정되지 않은 경우 Null을 반환합니다. 그렇지 않으면 0을 반환합니다.
GLOBAL_CONTEXT_MEMORY 글로벌로 액세스되는 컨텍스트에 의해 시스템 글로벌 영역에서 사용 중인 숫자를 반환합니다.
GLOBAL_UID Centrally Managed Users (CMU) 로그인의 경우 Active Directory에서 글로벌 사용자 ID (GUID)를 반환하거나, Enterprise User Security (EUS) 로그인의 경우 Oracle Internet Directory에서 반환합니다. 다른 모든 로그인의 경우 null을 반환합니다.
HOST 클라이언트가 연결한 호스트 컴퓨터의 이름입니다.
IDENTIFICATION_TYPE 사용자의 스키마가 데이터베이스에 생성된 방식을 반환합니다. 구체적으로는 CREATE/ALTER USER 구문에서 사용된 IDENTIFIED 절을 반영합니다. 아래의 목록에서 스키마 생성 중 사용된 구문 다음에 반환되는 식별 유형이 나와 있습니다:

IDENTIFIED BY password: LOCAL
IDENTIFIED EXTERNALLY: EXTERNAL
IDENTIFIED GLOBALLY: GLOBAL SHARED
IDENTIFIED GLOBALLY AS DN: GLOBAL PRIVATE
• exclusive global user mapping을 위한 GLOBAL EXCLUSIVE
• shared user mapping을 위한 GLOBAL SHARED
• 인증 없이 스키마가 생성된 경우 NONE
INSTANCE 현재 인스턴스의 인스턴스 식별 번호를 반환합니다.
INSTANCE_NAME 인스턴스의 이름을 반환합니다.
IP_ADDRESS 클라이언트가 연결한 컴퓨터의 IP 주소를 반환합니다. 클라이언트와 서버가 동일한 컴퓨터에 있고 연결이 IPv6 주소 지정을 사용하는 경우 ::1이 반환됩니다.
IS_APPLY_SERVER 논리 스탠바이 데이터베이스의 SQL Apply 서버 내에서 쿼리된 경우 TRUE를 반환하고, 그렇지 않으면 FALSE를 반환합니다.
IS_DG_ROLLING_UPGRADE Data Guard 구성에서 DBMS_ROLLING 패키지를 통해 시작된 데이터베이스 소프트웨어의 롤링 업그레이드가 활성화된 경우 TRUE를 반환하고, 그렇지 않으면 FALSE를 반환합니다.
ISDBA 사용자가 운영 체제 또는 패스워드 파일을 통해 DBA 권한을 가진 것으로 인증된 경우 TRUE를 반환합니다.
LANG 언어의 약어로, 'LANGUAGE' 매개변수보다 짧은 형식입니다.
LANGUAGE 현재 세션에서 사용 중인 언어와 영토를 나타내며, 데이터베이스 문자 집합과 함께 다음 형식으로 표시됩니다: language_territory.characterset
LDAP_SERVER_TYPE 구성된 LDAP 서버 유형을 반환하며, OID, AD(Active Directory), OID_G, OPENLDAP 중 하나입니다.
MODULE DBMS_APPLICATION_INFO 패키지 또는 OCI를 통해 설정된 응용 프로그램 이름(모듈)입니다.
NETWORK_PROTOCOL 통신에 사용되는 네트워크 프로토콜로, 연결 문자열의 'PROTOCOL=protocol' 부분에 지정된 대로 반환됩니다.
NLS_CALENDAR 현재 세션의 달력 정보입니다.
NLS_CURRENCY 현재 세션의 통화 정보입니다.
NLS_DATE_FORMAT 세션의 날짜 형식입니다.
NLS_DATE_LANGUAGE 날짜 표현에 사용되는 언어 정보입니다.
NLS_SORT BINARY 또는 언어별 정렬 기준입니다.
NLS_TERRITORY 현재 세션의 영토 정보입니다.
ORACLE_HOME Oracle 홈 디렉토리의 전체 경로명입니다.
OS_USER 데이터베이스 세션을 시작한 클라이언트 프로세스의 운영 체제 사용자 이름입니다.
PLATFORM_SLASH 플랫폼에 맞는 파일 경로 구분자로 사용되는 슬래시 문자입니다.
POLICY_INVOKER 행 수준 보안 (RLS) 정책 함수의 호출자입니다.
PROXY_ENTERPRISE_IDENTITY 프록시 사용자가 기업 사용자인 경우 Oracle Internet Directory DN을 반환합니다.
PROXY_USER 현재 세션을 SESSION_USER 대신 열어놓은 데이터베이스 사용자의 이름입니다.
PROXY_USERID 현재 세션을 SESSION_USER 대신 열어놓은 데이터베이스 사용자의 식별자입니다.
SCHEDULER_JOB 현재 세션이 foreground job 또는 background job에 속하는 경우 Y를 반환하고, 그렇지 않으면 N을 반환합니다.
SERVER_HOST 인스턴스가 실행 중인 컴퓨터의 호스트 이름입니다.
SERVICE_NAME 특정 세션이 연결된 서비스의 이름입니다.
SESSION_DEFAULT_COLLATION 세션의 기본 정렬 순서로, ALTER SESSION SET DEFAULT_COLLATION ... 문에 의해 설정됩니다.
SESSION_EDITION_ID 세션 에디션의 식별자입니다.
SESSION_EDITION_NAME 세션 에디션의 이름입니다.
SESSION_USER 세션 사용자의 이름(로그인한 사용자)입니다. 데이터베이스 세션의 기간 동안 변경될 수 있으며, Real Application Security 세션이 연결되거나 연결이 해제될 수 있습니다. 기업 사용자의 경우 스키마를 반환하며, 다른 사용자의 경우 데이터베이스 사용자 이름을 반환합니다. 현재 데이터베이스 세션에 Real Application Security 세션이 연결되어 있는 경우 사용자 XS$NULL을 반환합니다.

참고: 사용자 XS$NULL에 대한 자세한 정보는 Oracle Database 2 Day + Security Guide를 참조하십시오.
SESSION_USERID 세션 사용자의 식별자(로그인한 사용자)입니다.
SESSIONID 감사 세션 식별자입니다. 분산 SQL 문에서는 이 속성을 사용할 수 없습니다.
SID 세션 ID입니다.
STATEMENTID 감사 문 식별자입니다. STATEMENTID는 특정 세션에서 감사된 SQL 문 수를 나타냅니다. 분산 SQL 문에서는 이 속성을 사용할 수 없습니다.
TERMINAL 현재 세션의 클라이언트 운영 체제 식별자입니다. 분산 SQL 문에서는 로컬 세션 식별자를 반환합니다. 분산 환경에서는 이것이 원격 INSERT, UPDATE 또는 DELETE 작업이 아닌 원격 SELECT 문에만 지원됩니다.
UNIFIED_AUDIT_SESSIONID 통합 감사 또는 혼합 모드 감사를 사용하는 데이터베이스에 연결된 경우 통합 감사 세션 ID를 반환합니다. 전통적인 감사를 사용하는 데이터베이스에 연결된 경우 null을 반환합니다.

 


출처: 오라클 레퍼런스

원문 링크: Oracle SYS_CONTEXT 함수 문서

 

반응형

댓글