`

ORACLE上下文 context

阅读更多

 


今天做一个安全审计上下文对象,使用了 sys_context。

 

      sys_context是一个保持了和session有关的session级别的上下文。 这个上下文是一个session里的都可以访问到的地方,所以如果我们通过dbms_session.set_context放入一些session级别的自己的信息,就可以使用这个sys_context的上下文了。

 

dbms_session.set_context过程定义:

  procedure set_context(namespace varchar2, attribute varchar2, value varchar2, username varchar2 default null, client_id varchar2 default null);
  --  Input arguments:
  --    namespace
  --      Name of the namespace to use for the application context
  --    attribute
  --      Name of the attribute to be set
  --    value
  --      Value to be set
  --    username
  --      username attribute for application context . default value is null.
  --    client_id
  --      client identifier that identifies a user session for which we need
  --      to set this context.
  --
  --

 

context上下文的使用方式是:

 

1.创建上下文环境:

 

CREATE OR REPLACE CONTEXT US_CONTEXT USING SET_SECURITY_USER
 

2.将信息放到session中是:

CREATE OR REPLACE PROCEDURE "SET_SECURITY_USER" (USER_ID VARCHAR2) IS
BEGIN
  DBMS_SESSION.set_context('US_CONTEXT','USER_ID',USER_ID);

END;

这么做是因为,context只能通过它的受信任的过程来设置(就是上面的using 子句 指定的过程)。

直接调用:DBMS_SESSION.set_context('USF_CONTEXT','USER_ID','ADMIN');

会报错:

ERROR at line 1:
ORA-01031: insufficient privileges
ORA-06512: at "SYS.DBMS_SESSION", line 78
ORA-06512: at line 1

 

现在就可以通过:

SET_SECURITY_USER('ADMIN')

 放入登陆用户ID

 

select sys_context('US_CONTEXT','USER_ID') from dual; 

 在session中取得用户ID。

 

 

 

 

 

分享到:
评论

相关推荐

    在Oracle中使用登录触发器初始化用户会话

    Oracle 9i中推出的After Logon数据库触发器能够方便地初始化应用程序上下文中的属性。...它使用一个与上下文有关的单独PL/SQL代码对象,通常是一个数据包来改变或清除上下文。After Logon触发器正是执行的这个数据包。

    oracle9i中全文检索的创建与使用

    racle从7.3开始支持全文检索,即用户可以使用Oracle服务器的上下文(ConText)选项完成基于文本的查询。具体可以采用通配符查找、模糊匹配、相关分类、近似查找、条件加权和词意扩充等方法。在Oracle8.0.x中称为...

    ContextItems

    安装要安装上下文项,请将 2 个 NuGet 包之一(“MsSql 上下文项”或“Oracle 上下文项”)添加到已有实体框架架构(.edmx 文件)的项目中。 Package 会将 MsSqlContextItems.tt 或 OracleContextItems.tt 文件添加...

    JAVA性能瓶颈和漏洞检测].JProbe.Suite.v7.0.part1

    无须修改应用,JProbe就能对桌面或远程服务器上的应用进行分析,实现强大的信息展示和Java代码性能诊断功能。利用JProbe先进的数据收集功能,可以实现自动化的性能信息采集,缩短应用开发和优化周期。 JProbe在简单...

    Pretius-APEX-Context-Menu

    Pretius APEX上下文菜单 Pretius APEX上下文菜单是动态操作插件,基于定义的APEX列表实现APEX弹出菜单。 该插件可以附加到任何HTML元素,并根据授权方案结果呈现条目。 可以通过覆盖行为,动态添加子菜单和添加新...

    oracle的一些tips技巧

    最近群里好多人讨论oracle安全问题,今天找了些资料学习了下 获取Oracle当前会话的一些属性 (对于sql注射的环境判断很有用哦) SYS_CONTEXT 函数返回是与上下文名称空间相关的属性值。这个函数可以用在SQL和PL/SQL...

    java微信公众号MVC开发框架

    jwx是开源的java公众号开发MVC框架,基于spring配置文件和微信消息或事件注解,通过微信上下文处理一个或多个微信公众号服务请求。目的主要有两个,其一生封装微信请求xml消息为java实体对象,将返回对象转换为xml...

    DAO单元测试

    所以要进行dao的测试我需要从Spring的连接oracle的context中获取dao的实例出来,这里我使用的是spring-mockspring-mock使用比较简单的,只需要设置spring的配置文件路径就可以获得上下文了这里需要注意的是这个...

    计算机软件项目设计方案(2020).docx

    技术实现事务管理、服务日志、统一异常处理,在远程服务调用中使用RPC Context实现上下文管理,持久化框架采用Hibernate、Mybatis双框架兼容设计,使用数据访问代理服务,实现分库分表环境下的透明数据访问。...

    Spring中文帮助文档

    2.6.4. 将Spring 应用程序上下文部署为JCA adapter 2.6.5. 计划任务 2.6.6. 对Java 5 (Tiger) 支持 2.7. 移植到Spring 2.5 2.7.1. 改变 2.8. 更新的样例应用 2.9. 改进的文档 I. 核心技术 3. IoC(控制反转)...

    Spring API

    2.6.4. 将Spring 应用程序上下文部署为JCA adapter 2.6.5. 计划任务 2.6.6. 对Java 5 (Tiger) 支持 2.7. 移植到Spring 2.5 2.7.1. 改变 2.8. 更新的样例应用 2.9. 改进的文档 I. 核心技术 3. IoC(控制反转)...

    JAVA上百实例源码以及开源项目

    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...

    JAVA上百实例源码以及开源项目源代码

    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...

Global site tag (gtag.js) - Google Analytics