加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-12 17:01:01 所属栏目:百科 来源:网络整理
导读:1、 USERENV(OPTION) 返回当前的会话信息. OPTION='ISDBA'若当前是DBA角色,则为TRUE,否则FALSE. OPTION='LANGUAGE'返回数据库的字符集. OPTION='SESSIONID'为当前会话标识符. OPTION='ENTRYID'返回可审计的会话标识符. OPTION='LANG'返回会话语言名称的ISO简

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,'SESSIONID') sessionid,'INSTANCE') instance,'ENTRYID') entryid,'ISDBA') isdba,'NLS_TERRITORY') nls_territory,'NLS_CURRENCY') nls_currency,'NLS_CALENDAR') nls_calendar,'NLS_DATE_FORMAT') nls_date_format,'NLS_DATE_LANGUAGE') nls_date_language,'NLS_SORT') nls_sort,'CURRENT_USER') current_user,'CURRENT_USERID') current_userid,'SESSION_USER') session_user,'SESSION_USERID') session_userid,'PROXY_USER') proxy_user,'PROXY_USERID') proxy_userid,'DB_DOMAIN') db_domain,'DB_NAME') db_name,'HOST') host,'OS_USER') os_user,'EXTERNAL_NAME') external_name,'IP_ADDRESS') ip_address,'NETWORK_PROTOCOL') network_protocol,'BG_JOB_ID') bg_job_id,'FG_JOB_ID') fg_job_id,'AUTHENTICATION_TYPE') authentication_type,'AUTHENTICATION_DATA') authentication_data
from dual

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

代码如下: select *
from v$session se,
(select SYS_CONTEXT('USERENV',
SYS_CONTEXT('USERENV','AUTHENTICATION_DATA') authentication_data
from dual) base
where se.AUDSID = base.sessionid;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读