12
返回列表 发新帖
楼主: gzken2005

[原创] 急!help:如何控制 業務訂單要控制業務員祗能看自己的訂單?

[复制链接]
论坛徽章:
1
2010新春纪念徽章
日期:2010-01-04 08:33:08
11#
发表于 2009-1-15 16:28 | 只看该作者
看了半天也没看明白到底是PO还是OM

使用道具 举报

回复
招聘 : 技术/实施/服务顾问
论坛徽章:
16
ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:442013年新春福章
日期:2013-02-25 14:51:24
12#
发表于 2009-1-16 15:01 | 只看该作者
/*-----------------------------------------------------------------
    采用oracle的dbms_rls包实现数据访问控制
    在大部份系统中,权限控制主要定义为模块进入权限的控制和数据列访问权限的控制(如:某某人可以进入某个控制,
仓库不充许查看有关部门的字段等等)。但在某些系统中,权限控制又必须定义到数据行访问权限的控制,
此需求一般出现在同一系统,不同的相对独立机构使用的情况。(如:集团下属多个子公司,所有子公司使用同一套数据表,
但不同子公司的数据相对隔离), 绝大多数人会选择在View加上Where子句来进行数据隔离。此方法编码工作量大、
系统适应用户管理体系的弹性空间较小,一旦权限逻辑发生变动,就可能需要修改权限体系,导致所有的View都必须修改。
    本文探讨的使用Oracle提供的Policy管理方法来实现数据行的隔离
    注意:这里的policy是在9i上测试,8i的policy是不同9i的,但是原理是一样的.
------------------------------------------------------------------*/
--  (1)建立测试数据表(t_policy):
create table t_policy
(
  t1 varchar2(10),
  t2 number(10)
);
insert into t_policy values('a',10);
insert into t_policy values('b',20);
insert into t_policy values('c',30);
commit;

--  (2)建立测试policy的函数:
create or replace function fn_getpolicy(p_schema in varchar2,p_object in varchar2) return varchar2 is
  result varchar2(1000);
begin
  result:='t2 not in (10)';   --  此子句将被加载于启用了该Policy的DML语言之后
  return(result);
end fn_getpolicy;


--  (3)加入policy:
declare

begin
  dbms_rls.add_policy(
          object_schema =>'APPS', --数据表(或视图)所在的schema名称
          object_name =>'T_POLICY', --数据表(或视图)的名称
          policy_name =>'t_testpolicy', --policy的名称,主要用于将来对policy的管理
          function_schema =>'APPS', --返回where子句的函数所在schema名称
          policy_function =>'fn_getpolicy', --返回where子句的函数名称
          statement_types =>'select,insert,update,delete', --要使用该policy的dml类型,如'select,insert,update,delete'
          update_check =>true, --仅适用于statement_type为'insert,update',值为'true'或'false'
          enable =>true    --是否启用,值为'true'或'false'
  );
end;
--注:如果update_check设为'true',则用户插入的值不符合policy_function返回条件时,该dml执行返回错误信息。

--  现在就可以工作了:
select * from t_policy;
--看看结果怎样, 是不是少了t2=10这项了.


--  (4)删除policy
declare
begin
  dbms_rls.drop_policy('niegc','t_policy','t_testpolicy');
end;


--  (5)设置policy的状态
declare
begin
  dbms_rls.enable_policy('niegc','t_policy','t_testpolicy',false);
end;

使用道具 举报

回复
招聘 : 技术/实施/服务顾问
论坛徽章:
16
ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:442013年新春福章
日期:2013-02-25 14:51:24
13#
发表于 2009-1-16 15:36 | 只看该作者
再附上一段,查询SO时,智能看到自己Sales Order的Policy:
create or replace function ssak.db_data_policy(p_schema in varchar2,p_object in varchar2) return varchar2 is
  x_result varchar2(1000);
  x_user_id number;
begin
  x_user_id:=apps.fnd_global.user_id();
  if p_object='OE_ORDER_HEADERS_V' then
    x_result:='created_by=' || x_user_id;
  else
    x_result:=null;   
  end if;
  --  此子句将加载于启用了该Policy的DML语言之后
  return(x_result);
end db_data_policy;

使用道具 举报

回复
论坛徽章:
2
2011新春纪念徽章
日期:2011-02-18 11:42:48ITPUB十周年纪念徽章
日期:2011-11-01 16:24:51
14#
发表于 2009-1-17 11:54 | 只看该作者
恩~~~看明白了,先测测先~~~

顶一下~~

使用道具 举报

回复
论坛徽章:
7
生肖徽章2007版:兔
日期:2008-01-02 17:35:53生肖徽章2007版:兔
日期:2009-07-06 17:45:042009日食纪念
日期:2009-07-22 09:30:00祖国60周年纪念徽章
日期:2009-10-09 08:28:002010新春纪念徽章
日期:2010-01-04 08:33:082010新春纪念徽章
日期:2010-03-01 11:07:212011新春纪念徽章
日期:2011-02-18 11:42:47
15#
发表于 2009-1-22 11:16 | 只看该作者
好高深喲!

使用道具 举报

回复
论坛徽章:
20
会员2007贡献徽章
日期:2007-09-26 18:42:102014年新春福章
日期:2014-02-18 16:41:11双黄蛋
日期:2011-11-16 10:30:45ITPUB十周年纪念徽章
日期:2011-11-01 16:21:152011新春纪念徽章
日期:2011-02-18 11:43:35祖国60周年纪念徽章
日期:2009-10-09 08:28:00生肖徽章2007版:蛇
日期:2009-09-10 11:25:29生肖徽章2007版:虎
日期:2009-05-21 11:35:58生肖徽章2007版:龙
日期:2009-05-07 10:48:46生肖徽章2007版:鸡
日期:2009-03-26 09:35:58
16#
发表于 2009-1-30 22:36 | 只看该作者

使用道具 举报

回复
论坛徽章:
0
17#
发表于 2011-1-18 10:58 | 只看该作者

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表