博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
context规范
阅读量:6375 次
发布时间:2019-06-23

本文共 3043 字,大约阅读时间需要 10 分钟。

hot3.png

1、概述

1.1 背景及目的
随着公司近几年所开拓的业务领域不断增强,同时也需要相应的业务软件平台作为后台支持,因此,信息中心所设计开发的软件规模近几年增长速度也很快。随之而来的数据库的容量和复杂程度也成倍增加。为了提高数据库的效率,实现标准化以及便于数据库的统一管理,制定本规范,旨在以统一的标准指导开发人员正确使用CONTEXT。
1.2 适用范围
本规范适用于开发人员、数据库管理人员。
1.3 术语和缩略语
此处请填入文档中的专业术语及解释。

序号 术语/缩略语 全称和说明
1 Context(上下文) 全称为application context;是oracle FGA技术的一部分,用于存放用户的属性,也可以存放一些用户定制的信息,这些信息是session级的。
1.4 简介

Context目前在平安的系统中使用的较少,目前发现的问题不多,主要的一个问题就是效率问题,本规范制定的原则就是解决效率问题常见的使用context的。

场景之一是:用于存放用户的um帐号,比如,用户使用um帐户通过公用的数据库用户登陆到了数据库系统中,为了跟踪用户在数据库中所做的操作,必须记录用户的um帐号,这个时候可以在用户登陆时将用户的um帐号设置到context中,在后续的跟踪时可以从context中获取um帐号名。
场景之二:如果系统中对用户做了区域性的权限划分,为了控制用户的权限,使得用户只能在允许的区域内进行相关操作,那么可以将用户所属区域写入到context中,在用户进行操作时,对其权限进行控制。

2、技术规范

2.1 设计要求规范

2.1.1 关联CONTEXT 的package不能放到任何循环内调用

2.1.2 关联context的package必须独立,不可和其他功能的package共用,要避免pacakge功能复杂,调用频度过高,成为系统瓶颈。

2.1.3 如果会重复使用context,则应将context 赋值给一个变量,在package 中调用该变量以获取context值,避免context 重复调用。

附录

附录A 创建context

CREATE CONTEXT ctx_region_code USING lpp_region_code_context;

附录B 创建package

create or replace package lpp_region_code_context is --20071010 嘉峻 --********************************************************************************** --功能说明: 设置当前用户的region_code  2007.3.20 嘉峻 --调 用 者: --被调用者: --入口参数:p_region_code 当前用户的region_code --出口参数: --说    明: 用于设置在context中的当前用户region_code,用于权限控制(视图) --修改记录:20071010 新建过程 嘉峻 --********************************************************************************** procedure set_user_region_code(region_code varchar2); --********************************************************************************** --功能说明: 取当前用户的region_code  2007.3.20 嘉峻 --调 用 者: --被调用者:视图 --入口参数: --出口参数:存放于context的region_code --说    明: 用于获取设置在context中的region_code,用于权限控制(视图) --修改记录:20071010新建过程 嘉峻 --********************************************************************************** function get_user_region_code  return varchar2; end lpp_region_code_context; create or replace package body lpp_region_code_context is --********************************************************************************** --功能说明: 设置当前用户的region_code  2007.3.20 嘉峻 --调 用 者: --被调用者: --入口参数:p_region_code 当前用户的region_code --出口参数: --说    明: 用于设置在context中的当前用户region_code,用于权限控制(视图) --修改记录:20071010 新建过程 嘉峻 --********************************************************************************** procedure set_user_region_code(region_code varchar2) is begin     p_user_region_code:=region_code; end set_user_region_code; --********************************************************************************** --功能说明: 取当前用户的region_code  2007.3.20 嘉峻 --调 用 者: --被调用者:视图 --入口参数: --出口参数:存放于context的region_code --说    明: 用于获取设置在context中的region_code,用于权限控制(视图) --修改记录:20071010新建过程 嘉峻 --********************************************************************************** function get_user_region_code return varchar2 is v_region_code varchar2(10); begin   if p_user_region_code is null then     v_region_code:=0;   else     v_region_code:=p_user_region_code;   end if;   return v_region_code; end get_user_region_code; end lpp_region_code_context;

转载于:https://my.oschina.net/u/729507/blog/88727

你可能感兴趣的文章
在 Angular 中实现搜索关键字高亮
查看>>
[Javascript ] Array methods in depth - sort
查看>>
司机福利!Uber即将可以自己选目的地接单啦!
查看>>
pycharm的注册(转载)
查看>>
MOGODB REDIS
查看>>
HDU 1231:最大连续子序列(DP)
查看>>
[java] java 中Unsafe类学习
查看>>
HDU 1231——最大连续子序列(DP)
查看>>
P1739 表达式括号匹配
查看>>
3.1.4 模板字符串
查看>>
redis 介绍和常用命令
查看>>
CPU的段寄存器
查看>>
linux 安装nginx
查看>>
Kettle的概念学习系列之Kettle是什么?(一)
查看>>
Qt 3D教程(二)初步显示3D的内容
查看>>
100行代码实现最简单的基于FFMPEG+SDL的视频播放器(SDL1.x)【转】
查看>>
compareTo返回值为-1 、 1 、 0 的排序问题
查看>>
Being a Good Boy in Spring Festival(杭电1850)(尼姆博弈)
查看>>
微服务间如何选择推送和拉取数据
查看>>
互联网+时代IT管理者的转型
查看>>