ORA-28134:对象不能有小粒度访问控制策略

发布时间 2024-01-11 20:55:08作者: samrv

 

oracle 数据库表创建安全策略

 

提示错误

 

declare
-- 付款申请界面 (CUXAPPAYREQ.fmb)
-- 表: CUX.CUX_AP_PAYMENT_REQ_ALL 
-- 视图: APPS.CUX_AP_PAYMENT_REQ_ALL
-- 先创建表的同义词 
-- create or replace  synonym APPS.CUX_AP_PAYMENT_REQ for CUX.CUX_AP_PAYMENT_REQ_ALL;
Begin
  Dbms_Rls.Add_Policy(
    Object_Schema =>'APPS',  --数据表(或视图)所在的Schema名称
    Object_Name =>'CUX_AP_PAYMENT_REQ', --数据表(或视图)的名称
    Policy_Name =>'ORG_SEC', --POLICY的名称,主要用于将来对Policy的管理
    Function_Schema =>'APPS',  --返回Where子句的函数所在Schema名称
    Policy_Function =>'MO_GLOBAL.ORG_SECURITY', --返回Where子句的函数名称,  ORG_SECURITY():函数返回ORG_ID 
    Statement_Types =>'SELECT', -- DML类型,如 'Select,Insert,Update,Delete'
    Enable =>True,    --是否启用,值为'True'或'False'
    static_policy => FALSE,
    policy_type => 4 -- 4:'SHARED_CONTEXT_SENSITIVE', 1:STATIC
 );
end;

/**
ORA-28134:对象不能有小粒度访问控制策略
ORA-06512: 在"SYS.DBMS_RLS_INT", line 23
ORA-06512: 在"SYS.DBMS_RLS_INT", line 54
ORA-06512: 在line 6
原因: 不能使用多租户的视图创建同义词的安全策略。
** /