WEB开发网
开发学院数据库Oracle Oracle中构建基于VPD特性的安全数据库 阅读

Oracle中构建基于VPD特性的安全数据库

 2007-05-13 12:30:00 来源:WEB开发网   
核心提示: AM_NAME字段存储账户经理的用户ID;CUST_ID用于识别客户;ACCESS_TYPE定义指定的访问权限--S(SELECT--查询)、I(INSERT--插入数据)、D(DELETE--删除数据)以及U(UPDATE--更新数据),ACCESS_POLICY表中有这样一些记录:AM

AM_NAME字段存储账户经理的用户ID;CUST_ID用于识别客户;ACCESS_TYPE定义指定的访问权限--S(SELECT--查询)、I(INSERT--插入数据)、D(DELETE--删除数据)以及U(UPDATE--更新数据)。ACCESS_POLICY表中有这样一些记录:  AM_NAME  CUST_ID  ACCESS_TYPE
  -------  ------- -----------
  SCOTT    123  S
  SCOTT    123  I
  SCOTT    123  D
  SCOTT    123  U
  SCOTT    456  S
  SCOTT    789  S
  LARA     456  I
  LARA     456  D
  LARA     456  U
  LARA     456  S

正如你所看到的,客户123的AM SCOTT拥有所有权限--S、I、D和U--客户456的AM LARA也具有这些权限。还有,由于SCOTT可以批准LARA的客户456的账户结余,所以他拥有对客户456的S权限。

第一步 创建政策函数

无论AM何时要查看客户的账户信息,他都必须动态地应用银行的访问规则(包含在ACCESS_POLICY表中)。第一步是创建政策函数,用于返回要应用到表上的适当判定词。和对ACCESS_POLICY表的处理一样,出于安全考虑,政策函数也由用户的SECMAN创建和控制。最好是使隐私规则与它们将要应用到的表分开。

让我们仔细看一看政策函数get_sel_cust_id:

准确接收两个参数:模式名称(p_schema in varchar2)和表名(p_table in varchar2)。

只返回一个字符串值--return varchar2 as l_retstr varchar2(2000),它包含将要添加到表的每个查询中的判定词。

使用一个游标例程--for cust_ rec in--来获得值的列表,因为每个用户可能有表中列出的几个cust_id。

上一页  1 2 3 4  下一页

Tags:Oracle 构建 基于

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接