Oracle中获取会话信息的两个函数分享
1、USERENV(OPTION)
返回当前的会话信息.
OPTION='ISDBA'若当前是DBA角色,则为TRUE,否则FALSE.
OPTION='LANGUAGE'返回数据库的字符集.
OPTION='SESSIONID'为当前会话标识符.
OPTION='ENTRYID'返回可审计的会话标识符.
OPTION='LANG'返回会话语言名称的ISO简记.
OPTION='INSTANCE'返回当前的实例.
OPTION='terminal'返回当前计算机名
SELECTUSERENV('LANGUAGE')FROMDUAL;
2、sys_context
select
SYS_CONTEXT('USERENV','TERMINAL')terminal,
SYS_CONTEXT('USERENV','LANGUAGE')language,
SYS_CONTEXT('USERENV','SESSIONID')sessionid,
SYS_CONTEXT('USERENV','INSTANCE')instance,
SYS_CONTEXT('USERENV','ENTRYID')entryid,
SYS_CONTEXT('USERENV','ISDBA')isdba,
SYS_CONTEXT('USERENV','NLS_TERRITORY')nls_territory,
SYS_CONTEXT('USERENV','NLS_CURRENCY')nls_currency,
SYS_CONTEXT('USERENV','NLS_CALENDAR')nls_calendar,
SYS_CONTEXT('USERENV','NLS_DATE_FORMAT')nls_date_format,
SYS_CONTEXT('USERENV','NLS_DATE_LANGUAGE')nls_date_language,
SYS_CONTEXT('USERENV','NLS_SORT')nls_sort,
SYS_CONTEXT('USERENV','CURRENT_USER')current_user,
SYS_CONTEXT('USERENV','CURRENT_USERID')current_userid,
SYS_CONTEXT('USERENV','SESSION_USER')session_user,
SYS_CONTEXT('USERENV','SESSION_USERID')session_userid,
SYS_CONTEXT('USERENV','PROXY_USER')proxy_user,
SYS_CONTEXT('USERENV','PROXY_USERID')proxy_userid,
SYS_CONTEXT('USERENV','DB_DOMAIN')db_domain,
SYS_CONTEXT('USERENV','DB_NAME')db_name,
SYS_CONTEXT('USERENV','HOST')host,
SYS_CONTEXT('USERENV','OS_USER')os_user,
SYS_CONTEXT('USERENV','EXTERNAL_NAME')external_name,
SYS_CONTEXT('USERENV','IP_ADDRESS')ip_address,
SYS_CONTEXT('USERENV','NETWORK_PROTOCOL')network_protocol,
SYS_CONTEXT('USERENV','BG_JOB_ID')bg_job_id,
SYS_CONTEXT('USERENV','FG_JOB_ID')fg_job_id,
SYS_CONTEXT('USERENV','AUTHENTICATION_TYPE')authentication_type,
SYS_CONTEXT('USERENV','AUTHENTICATION_DATA')authentication_data
fromdual
3.与系统视图v$session组合使用可以获得更多信息(客户端所使用的应用程序等)
select*
fromv$sessionse,
(selectSYS_CONTEXT('USERENV','TERMINAL')terminal,
SYS_CONTEXT('USERENV','LANGUAGE')language,
SYS_CONTEXT('USERENV','SESSIONID')sessionid,
SYS_CONTEXT('USERENV','INSTANCE')instance,
SYS_CONTEXT('USERENV','ENTRYID')entryid,
SYS_CONTEXT('USERENV','ISDBA')isdba,
SYS_CONTEXT('USERENV','NLS_TERRITORY')nls_territory,
SYS_CONTEXT('USERENV','NLS_CURRENCY')nls_currency,
SYS_CONTEXT('USERENV','NLS_CALENDAR')nls_calendar,
SYS_CONTEXT('USERENV','NLS_DATE_FORMAT')nls_date_format,
SYS_CONTEXT('USERENV','NLS_DATE_LANGUAGE')nls_date_language,
SYS_CONTEXT('USERENV','NLS_SORT')nls_sort,
SYS_CONTEXT('USERENV','CURRENT_USER')current_user,
SYS_CONTEXT('USERENV','CURRENT_USERID')current_userid,
SYS_CONTEXT('USERENV','SESSION_USER')session_user,
SYS_CONTEXT('USERENV','SESSION_USERID')session_userid,
SYS_CONTEXT('USERENV','PROXY_USER')proxy_user,
SYS_CONTEXT('USERENV','PROXY_USERID')proxy_userid,
SYS_CONTEXT('USERENV','DB_DOMAIN')db_domain,
SYS_CONTEXT('USERENV','DB_NAME')db_name,
SYS_CONTEXT('USERENV','HOST')host,
SYS_CONTEXT('USERENV','OS_USER')os_user,
SYS_CONTEXT('USERENV','EXTERNAL_NAME')external_name,
SYS_CONTEXT('USERENV','IP_ADDRESS')ip_address,
SYS_CONTEXT('USERENV','NETWORK_PROTOCOL')network_protocol,
SYS_CONTEXT('USERENV','BG_JOB_ID')bg_job_id,
SYS_CONTEXT('USERENV','FG_JOB_ID')fg_job_id,
SYS_CONTEXT('USERENV','AUTHENTICATION_TYPE')authentication_type,
SYS_CONTEXT('USERENV','AUTHENTICATION_DATA')authentication_data
fromdual)base
wherese.AUDSID=base.sessionid;