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

前天维护数据库,在执行某个的脚本时,发现结果与实际情况有所出入。对该脚本进行检查,发现其中包含有一条子查询语句:

SELECT sys_context('userenv','ip_address') from DUAL;

在sqlplus内执行,返回结果为空。经翻阅资料,发现该语句的作用是返回一个上下文的参数值。其中sys_context是一个oracle关键字,用于查询一个命名空间(namespace)中某个参数(parameter)的值。Oracle默认建立的命名空间为“userenv”。该命名空间包含以下参数(摘自Docs Oracle ):

ACTION:模块中的位置标识(应用程序名),通过DBMS_APPLICATION_INFO包或者OCI设置。

AUDITED_CURSORID:返回触发审计的SQL游标标识。该参数在高精度审计环境下总是返回NULL。

AUTHENTICATED_IDENTITY:返回认证用的标识。下列列表中各种用户类型返回其后的值:

Kerberos认证企业用户:kerberos主体名

Kerberos认证外部用户:kerberos主体名;等同于Schema名

SSL认证企业用户:用户PKI证书的识别号

SSL认证外部用户:用户PKI证书的识别号

密钥认证企业用户:昵称;等同于登陆名

密钥认证数据库用户:数据库用户名,等同于Schema名

OS认证外部用户:外部操作系统用户名

Radius/DCE认证外部用户:方案名

携带DN代理:OID识别号

携带证书代理:客户的证书识别号

携带用户名代理:客户若为本地数据库用户则为数据库用户名,若为企业用户则返回昵称。

以密码文件登陆SYSDBA/SYSOPER:登陆名

以操作系统认证登陆SYSDBA/SYSOPER:操作系统用户名

AUTHENTICATION_DATA:用于认证登录用户的数据。

AUTHENTICATION_METHOD:认证方式,包括PASSWORD、KERBEROS、SSL、RADIUS、OS、DCE或者NONE。在Password, Kerberos或者SSL认证模式下可用关键字IDENTIFICATION_TYPE区分外部用户和企业用户。

BG_JOB_ID:若本会话是由Oracle数据库后台进程创建的,返回其任务ID;否则返回NULL。

CLIENT_IDENTIFIER:返回某应用通过DBMS_SESSION.SET_IDENTIFIER程序、OCI特性OCI_ATTR_CLIENT_IDENTIFIER或者JAVA类Oracle.jdbc.OracleConnection.setClientIdentifier所设置的标识。该特性用于各类数据库组件,鉴别认证为同一数据库用户的不同轻量级应用用户。

CLIENT_INFO:返回最多64字节的用户会话信息,当应用使用到DBMS_APPLICATION_INFO包时该信息可被保存下来。

CURRENT_BIND:返回高精度审计的绑定变量。

CURRENT_SCHEMA:返回当前Schema中的默认Schema名。该值随着会话中所使用ALTERSESSION SET CURRENT_SCHEMA声明而改变。

CURRENT_SCHEMAID:本会话所使用的默认Schema标识。

CURRENT_SQL/CURRENT_SQLn:CURRENT_SQL返回当前触发高精度审计事件的SQL前4k个字节。CURRENT_SQLn特性返回接下来以4k字节递增的序列,n可以是整数1-7。CURRENT_SQL1返回4k-8k字节;CURRENT_SQL2返回4k至8k字节,以此往下推。该属性只能在高精度审记特性的事件处理器中被指定。

CURRENT_SQL_LENGTH:当前触发高精度审记、行级安全策略功能或事件处理器的SQL声明长度。仅在功能或者事件处理器内有效。

DB_DOMAIN:由初始化参数DB_DOMAIN所指定的数据库域。

DB_NAME:由初始化参数DB_NAME所指定的数据库名。

DB_UNIQUE_NAME:由初始化参数DB_UNIQUE_NAME所指定的数据库名。

ENTRYID:当前审计项号码。高精度审记记录与一般审计记录共享该审计项标识序列。该属性不能用于分布式SQL声明。在一个标准或高精度审记的审计处理器中才能看到准确的审计项标识。

ENTERPRISE_IDENTITY:返回用户在企业范围内的标识:

时间: 2024-11-01 19:50:26

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

Oracle中在pl/sql developer修改表的两种方式

一.方式一 select * from student for update student表需要操作人修改完commit之后才可以做其他的操作,否则该表会被锁住. 二.方式二 select t.*,t.rowid from student t 在pl/sql developer中右击某表,显示的就是该语句,这样做不会将该表锁住. 想修改某几个字段也没有问题select num,name,t.rowid from student t.

Oracle中在pl/sql developer修改表的两种语句

一.方式一 select * from student for update student表需要操作人修改完commit之后才可以做其他的操作,否则该表会被锁住. 二.方式二 select t.*,t.rowid from student t 在pl/sql developer中右击某表,显示的就是该语句,这样做不会将该表锁住. 想修改某几个字段也没有问题select num,name,t.rowid from student t. 该种方式也可以修改多表联合查询的情况,现有table1和ta

建立与Oracle服务器连接的两种连接模式

在建立Oracle数据库的时候,应该会在数据库建立助手向导上面看到这么一个选项,就是数据库的连接模式采用什么方式.在Oracle9i或者10g中,可以看到有2种连接模式,一种叫做专用服务器连接(dedicated server) ,另外一种叫做共享服务器连接(shared server).下面我们来分类说一下这两种连接方式的不同点. 专用服务器模式就是说每次在对Oracle进行访问的时候,Oracle服务器的Listener会得到这个访问请求,然后回为这个访问创建一个新的进程来进行服务.所以说,

浅谈Oracle数据库的建模与设计_oracle

正在看的ORACLE教程是:浅谈Oracle数据库的建模与设计.要开发一个基于数据库的应用系统,其中最关键的一步就是整个系统所依据的数据库的建模设计,从逻辑的到物理的,一个环节疏于设计,整个的应用系统便似建立在危房之上,随着开发过程的不断深入,它要随时面临着各种难  以预料的风险,开发者要为修改或重新设计没有设计好的数据库系统而付出难以预料的代价.所以,一个良好的数据库设计是高效率的系统所必须的.  一.逻辑建模  数据库设计的方法因具体数据库而异,但是建模阶段的相同的,所以可以用一些通用的工具

浅谈Oracle数据库外部身份认证研究

以下的文章主要是浅谈Oracle数据库的外部身份认证实际研究,我在一个信誉度很好的网站,找到了一个关于浅谈Oracle数据库外部身份认证的一些实用性很强的相关资料,拿出来供大家分享. 一.服务器上使用操作系统验证 1.配置SQLNET.ORA文件 参数NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)表明解析客户端连接时所用的主机字符串的方式.TNSNAMES表示采用TNSNAMES.ORA文件来解析:ONAMES表示Oracle使用自己的名称服

[技术学习]浅谈MFC中超类化技术的实现 .

自 Panr 的 Blog // 关键词:// 面对对象编程.超类化.子类化.Superclassing// MFC.CWnd::SubclassWindow// 通用控件.CMNCTRL//// 主题:// 通过CWnd::SubclassWindow 函数的分析,浅谈MFC中超类化技术的实现////// 背景// 我在2002-12月见了mahongxi (烤鸡翅膀)(色摸)在CSDN上的一个帖// 介绍了MFC中窗体的超类化的概念,以下是对我个人回贴的总结//// 日志// 修改:Panr

浅谈Javascript中的函数、this以及原型_javascript技巧

关于函数 在Javascript中函数实际上就是一个对象,具有引用类型的特征,所以你可以将函数直接传递给变量,这个变量将表示指向函数"对象"的指针,例如: function test(message){ alert(message); } var f = test; f('hello world'); 你也可以直接将函数申明赋值给变量: var f = function(message){ alert(message); }; f('hello world'); 在这种情况下,函数申明

浅谈PHP中Stream(流)_php技巧

流(stream)的概念源于UNIX中管道(pipe)的概念.在UNIX中,管道是一条不间断的字节流,用来实现程序或进程间的通信,或读写外围设备.外部文件等.根据流的方向又可以分为输入流和输出流,同时可以在其外围再套上其它流,比如缓冲流,这样就可以得到更多流处理方法. PHP里的流和Java里的流实际上是同一个概念,只是简单了一点.由于PHP主要用于Web开发,所以"流"这块的概念被提到的较少.如果有Java基础,对于PHP里的流就更容易理解了.其实PHP里的许多高级特性,比如SPL,

浅谈Java中常用数据结构的实现类 Collection和Map_java

线性表,链表,哈希表是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应的类来实现基本的数据结构.这些类均在java.util包中.本文试图通过简单的描述,向读者阐述各个类的作用以及如何正确使用这些类. Collection ├List │├LinkedList │├ArrayList │└Vector │ └Stack └Set Map ├Hashtable ├HashMap └WeakHashMap Collection接口 Collection是最基本的集合接口,一个C