分类: Oracle
2010-04-10 10:57:29
在大部份系统中,权限控制主要定义为模块进入权限的控制和数据列访问权限的控制(如:某某人可以进入某个控制,仓库不充许查看有关部门的字段等等)。
但在某些系统中,权限控制又必须定义到数据行访问权限的控制,此需求一般出现在同一系统,不同的相对独立机构使用的情况。(如:集团下属多个子公司,所有子公司使用同一套数据表,但不同子公司的数据相对隔离),绝大多数人会选择在View加上Where子句来进行数据隔离。此方法编码工作量大、系统适应用户体系的弹性空间较小,一旦权限逻辑发生变动,就可能需要修改权限体系,导致所有的View都必须修改。
本文探讨的使用Oracle提供的Policy管理方法来实现数据行的隔离
注意:这里的policy是在9i上
(1)建立数据表(t_policy):
CREATE TABLE T_POLICY
(
T1 VARCHAR2(10 BYTE),
T2
NUMBER(10)