Oracle中获取会话信息的两个函数分享

1、 userenv(option) 
  返回当前的会话信息. 
  option=’isdba’若当前是dba角色,则为true,否则false. 
  option=’language’返回数据库的字符集. 
  option=’sessionid’为当前会话标识符. 
  option=’entryid’返回可审计的会话标识符. 
  option=’lang’返回会话语言名称的iso简记. 
  option=’instance’返回当前的实例. 
    option=’terminal’返回当前计算机名 
  select userenv(‘language’) from dual;
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  

from dual

3.与系统视图v$session组合使用可以获得更多信息(客户端所使用的应用程序等)

复制代码 代码如下:

select *

  from v$session se,

       (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

          from dual) base

 where se.audsid = base.sessionid;

 

(0)
上一篇 2022年3月22日
下一篇 2022年3月22日

相关推荐