userenv和sys_context函数

知识篇 | Oracle之环境上下文信息的预定义函数sys_context介绍 sys_context函数是Oracle提供的一个获取环境上下文信息的预定义函数。 该函数用来返回一个指定namespace下的parameter值;可以在sql和PL/SQL语言中使用。 sys_context实际是一个Oracle存储和传递参数的容器访问函数。 Session会话在登入Oracle时,是带有会话信息和其他一些属性信息的。其中,有一些是Oracle预定义的,登录系统的时候自动填入到指定的变量中。另一个函数userenv()保留与之兼容。 SYS_CONTEXT函数的用法如下:SYS_CON 阅读详情
      这两个函数用来记录连接的session信息,经常用于触发器中,记录客户端的连接信息(比如IP)。我比较关注的是sessionid和ip,但是 select userenv('sessionid')得到的并不是用户的sid,而是v$session中的audsid,sid根据audsid再得到:
SQL> select sid from v$session where audsid=userenv('sessionid');
       SID
----------
       159
至于sid和audsid的区别,自己也没太搞明白,网上摘了一段:
--from asktom
the audsid column is populated via a sequence and for normal
sessions is the same as "userenv('sessionid')" -- but for some background sessions -- it is not set
(it comes back as "0" making the view not work.
So, I'd just ignore "audsid" for now and use SID.
 
下面记录了两个函数的具体用法:
 
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 ;
 
其中,第二个参数的可选值如下:
AUTHENTICATION_DATA  
Data being used to authenticate the login user. For X.503 certificate authenticated sessions, this field returns the context of the certificate in HEX2 format.
Note: You can change the return value of the AUTHENTICATION_DATA attribute using the length parameter of the syntax. Values of up to 4000 are accepted. This is the only attribute of USERENV for which Oracle implements such a change.  

AUTHENTICATION_TYPE
How the user was authenticated:
DATABASE: username/password authentication
OS: operating system external user authentication
NETWORK: network protocol or ANO authentication
PROXY: OCI proxy connection authentication

BG_JOB_ID  
Job ID of the current session if it was established by an Oracle background process. Null if the session was not established by a background process.

CLIENT_INFO  
Returns up to 64 bytes of user session information that can be stored by an application using the DBMS_APPLICATION_INFO package.

CURRENT_SCHEMA  
Name of the default schema being used in the current schema. This value can be changed during the session with an ALTER SESSION SET CURRENT_SCHEMA statement.  

CURRENT_SCHEMAID  
Identifier of the default schema being used in the current session.

CURRENT_USER  
The name of the user whose privilege the current session is under.

CURRENT_USERID  
User ID of the user whose privilege the current session is under.

DB_DOMAIN  
Domain of the database as specified in the DB_DOMAIN initialization parameter.

DB_NAME  
Name of the database as specified in the DB_NAME initialization parameter.

ENTRYID  
The available auditing entry identifier. You cannot use this option in distributed SQL statements. To use this keyword in USERENV, the initialization parameter AUDIT_TRAIL must be set to true.   

EXTERNAL_NAME  
External name of the database user. For SSL authenticated sessions using v.503 certificates, this field returns the distinguished name (DN) stored in the user certificate.   

FG_JOB_ID  
Job ID of the current session if it was established by a client foreground process. Null if the session was not established by a foreground process.   

HOST  
Name of the host machine from which the client has connected.   

INSTANCE  
The instance identification number of the current instance.   

IP_ADDRESS  
IP address of the machine from which the client is connected.   

ISDBA  
TRUE if you are logged on as SYS.

LANG  
The ISO abbreviation for the language name, a shorter form than the existing 'LANGUAGE' parameter.   

LANGUAGE
The language and territory currently used by your session, along with the database character set, in the form:language_territory.characterset.

NETWORK_PROTOCOL  
Network protocol being used for communication, as specified in the 'PROTOCOL=protocol' portion of the connect string.  

NLS_CALENDAR  
The current calendar of the current session.

NLS_CURRENCY  
The currency of the current session.

NLS_DATE_FORMAT  
The date format for the session.

NLS_DATE_LANGUAGE
The language used for expressing dates.

NLS_SORT  BINARY
or the linguistic sort basis.  

NLS_TERRITORY
The territory of the current session.

OS_USER  
Operating system username of the client process that initiated the database session.

PROXY_USER  
Name of the database user who opened the current session on behalf of SESSION_USER.

PROXY_USERID
Identifier of the database user who opened the current session on behalf of SESSION_USER.

SESSION_USER  
Database user name by which the current user is authenticated. This value remains the same throughout the duration of the session.

SESSION_USERID  
Identifier of the database user name by which the current user is authenticated.

SESSIONID  
The auditing session identifier. You cannot use this option in distributed SQL statements.

TERMINAL
The operating system identifier for the client of the current session. In distributed SQL statements, this option returns the identifier for your local session. In a distributed environment, this is supported only for remote SELECT statements, not for remote INSERT, UPDATE, or DELETE operations.
(The return length of this parameter may vary by operating system.)

本文出自 “帅小伙的博客” 博客,请务必保留此出处http://zhaizhenxing.blog.51cto.com/643480/134745

全国30米分辨率逐年植被覆盖度(FVC)数据集 植被覆盖度是描述地表植被的重要参数与生态环境的基本指标,在大气圈、土壤圈、水圈和生物圈中都占据着重要的地位,区域及全球范围的植被覆盖度估算对植被及相关领域的研究具有重要意义。分别对LANDSAT 5/7/8系列数据计算FVC,其中Landsat5 和Landsat 7NDVI计算利用 B4和B3波段,Landsat8 和Landsat9 NDVI计算利用 B5和B4波段。算法从当年所有观测数据中,以低云、低探测角度和最高NDVI值为标准,选择最佳的可用像元值,并进行换算。(3) FVC的计算。 阅读详情

相关推荐

【学习路线】 游戏客户端开发入门到进阶

游戏开发是一个交叉性极强的技术领域,对开发者提出了高维度的要求。作为初学者,不要急于求成,打牢基础、注重原理、勤于实践,你的成长将会非常快速而稳健。希望这份学习路线与书单能为你指明方向,迈出职业开发者的第一步。

hhw_hhw的博客 2130

【SYS_CONTEXT】使用SYS_CONTEXT获取连接到数据库服务器的IP地址

使用SYS_CONTEXT可以获得很多数据库信息,官方文档参考链接如下:http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/functions165.ht...

cuanchuwei1207的博客 537

Zabbix监控网络设备讲解

Zabbix监控网络设备讲解 本人在研究学习zabbix的时候,网上找过很多如何监控路由,交换,或者是防火墙的文章,但很多都比较散,这里我出一个大概的整合,方便大家参考和学习。本章就拿华三的交换机来做文章。 监控网络设备首先我们需要开启snmp协议,华三怎么开启snmp协议在我的博客里有写到,其次就是找到版本对应的OID,zabbix就是通过抓取设备的OID来做到监控网络设备的,当然zabbix也不仅仅只有通过snmp来监控设备,还有很多别的功能,这些功能我会在以后的博客里面一一更新 文章目录Zab

太阳了文哥的博客 3382

浅谈oracle中SYS_CONTEXT上下文关系以及TCP和IPC两种连接方式

前天维护数据库,在执行某个的脚本时,发现结果与实际情况有所出入。对该脚本进行检查,发现其中包含有一条子查询语句: SELECT sys_context('userenv','ip_address') from DUAL; 在sqlplus内执行,返回结果为空。经翻阅资料,发现该语句的作用是返回一个上下文的参数值。其中sys_context是一个oracle关键字,用于查询...

weixin_34194551的博客 242

AI 编程新范式:一文彻底搞懂 LLM、Agent、MCP、Skill 是怎么协作的

本文用通俗易懂的方式解析了AI编程新架构的核心概念。通过"三国演义"类比,文章将复杂的技术架构拆解为:Agent(军师/大脑)负责思考和决策,Skill(招式/手脚)执行具体操作,MCP(令箭/协议)作为通信标准,MCP Server(将军/身体)承载多个Skill。这套分工架构使AI从单纯聊天进化成能完成实际编程任务的全能助手,实现了关注点分离——Agent专注智能提升,Skill专注功能实现,MCP确保稳定连接。这正是Cursor、Claude等新一代AI开发工具采用的核心架构,标志

猫老板的豆 3084

基于51单片机的贪吃蛇游戏设计

本科时候做的一个课程作业,自己打一个很简易的电路,比较有意思且易上手,故将之记录下来。(全套的仿真及代码,演示视频,课程报告以及PPT展示上传在优快云下载区) 一. 实验目的 (1) 通过对C51语言的理解,编写程序实现对贪吃蛇的有效控制; (2) 通过对51单片机硬件的学习,学会运用面包板,独立按键、点阵屏等,完成对完整电路的搭建过程; (3) 通过对Proteus仿真软件的学习,实现基于STC89C52单片机的8*8点阵贪吃蛇的硬件电路仿真。 二. 实验介绍 贪吃蛇是一款经典小游戏,其游戏的规则是:玩

山山の十三先生 2万+

oracle中的 sys_context()函数

sys_context() 第一个参数为'USERENV'是固定的,不区分大小写。第二个参数也是固定的,但是可多选,可选的值如下所示: select sys_context('USERENV','BG_JOB_ID') from dual;--当前指定id的会话是否为oracle后台程序建立,不是则返回null select sys_context('USERENV','CLIENT_INFO') from dual;--通过dbms_application_info包可以存储高达64字节的用户会话信

qq_40816324的博客 2830

基于STM32控制直流电机加减速正反转仿真设计

*单片机设计介绍,基于STM32控制直流电机加减速正反转仿真设计。

2201_75940997的博客 1604

SYS_CONTEXT 详细用法

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 ...

lzj033的专栏 482

使用Termux在Android设备上编译运行SpecCPU2006

SPEC2006搭配Termux,竟然还能这么玩?!

菜菜的菜园子 2961

Xilinx Blockset Counter计数器模块使用及参数配置

本文详细介绍了Simulink中Xilinx Blockset库Counter模块的使用以及参数说明。

白码王子小张的博客 1096

USERENV函数和SYS_CONTEXT函数使用

两个函数目的都是用来返回数据库及用户信息,具体用法如下: 是否为DBA角色:USERENV('ISDBA')、SYS_CONTEXT('USERENV','ISDBA') DB的字符集:USERENV('LANGUAGE')、SYS_CONTEXT('USERENV','LANGUAGE') 当前会话标识符:USERENV('SESSIONID')、SYS_CONTEXT('USER

Guo203的博客 778

STM32(HAL库)驱动st7789LCD屏幕(7引脚240*240)

屏幕厂家提供的都是标准库,网上找了找没看到好用的HAL库屏幕驱动,因此本文对HAL库驱动TFT屏幕进行详细讲解。

weixin_44597885的博客 6065

Oracle USERENV函数和sys_context函数

1、 USERENV(OPTION)  返回当前的会话信息.  OPTION='ISDBA'若当前是DBA角色,则为TRUE,否则FALSE.  OPTION='LANGUAGE'返回数据库的字符集.  OPTION='SESSIONID'为当前会话标识符.  OPTION='E

xiaoziteng的专栏 1180

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Oracle的USERENV函数和SYS_CONTEXT函数

1.USEREVN('opt')函数返回当前用户环境的信息,opt可以是:ENTRYID,SESSIONID,TERMINAL,ISDBA,LABLE,LANGUAGE,CLIENT_INFO,LANG,VSIZE1.ISDBA 查看当前用户是否是DBA如果是则返回trueSQL> select userenv('isdba') from dual;USEREN--...

weixin_34006468的博客 301

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

SYS_CONTEXT和USERENV(OPTION)函数

SYS_CONTEXT Syntax Description of the illustration sys_context.gif Purpose SYS_CONTEXT returns the value of parameter associated with the context namespace at the current instant(当前实例).

haiross的专栏 1367

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

userenv和sys_context函数-----转载不知何处

这两个函数用来记录连接的session信息,经常用于触发器中,记录客户端的连接信息(比如IP)。我比较关注的是sessionid和 ip,但是 select userenv('sessionid')得到的并不是用户的sid,而是...

ciyu1946的博客 164
上一篇: C# “@”关键字
下一篇: ODP.NET Types Overview
银月术
博客等级 码龄17年 7粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值