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;