在表已编辑的包中插入AS SELECT

时间:2019-02-20 16:51:50

标签: oracle redaction

我已删除表中的列。当开发人员尝试在pkg中使用“ INSERT AS SELECT”命令时,他们会得到:

  

ORA-28081:权限不足-该命令引用了已编辑的对象。

除了授予架构豁免(完全禁止使用修订)之外,我还能做什么?

开发人员使用该程序包,但不应看到表内容

这里是功能:

FUNCTION Create****Transaction (******PackageUserId NUMBER)
   return NUMBER
   IS
   /*****************************
      Local Variable Definitions
   ******************************/
   v_****tId NUMBER(15);


   BEGIN
        v_****Id := ***_PKG.GETNEXTAMSSEQNUM();

        INSERT INTO ****_AGENCY_PACK_USER_TRANS ****
        (
         ****_ID,
         ****_****_ID,
         ****_BUS_ID,
         ****_ROLE_ID,
         ****_DATE_FROM,
         ****_DATE_TO,
         ****_ABBR,
         ****_NOTE,
         ****_CREATED_BY,
         ****_DATE_CREATED,
         ****_AUDIT_ACTION,
         ****_AUDIT_DATE,
         ****_AUDIT_LOCATION,
         ****_AUDIT_USER,
         ****_VER_NUM,
             ****_AMSS_ID,
             ****_WEBSERVICE,
         ****_APR_ID,
             ****_ASSIGN_RULE_ALLOWED,
         ****_SUP_TAG,
         ****_CPR
         )
        (
        select
           v_****Id,
         ****_ID,
         ****_BUS_ID,
         ****_ROLE_ID,
         ****_DATE_FROM,
         ****_DATE_TO,
         ****_ABBR,
         ****_NOTE,    (THIS IS REDACTED ON THE TABLE)
                 ****_CREATED_BY,
         ****_DATE_CREATED,
         ****_AUDIT_ACTION,
         ****_AUDIT_DATE,
         ****_AUDIT_LOCATION,
         ****_AUDIT_USER,
         ****_VER_NUM,
             ****_AMSS_ID,
             ****_WEBSERVICE,
         ****_APR_ID,
             ****_ASSIGN_RULE_ALLOWED,
             ****_SUP_TAG,
             ****_CPR
        FROM
                  ***********_PACKAGE_USERS
        WHERE ****_ID = *****PackageUserId
        );

        if SQL%ROWCOUNT = 0 THEN
           dbms_output.put_line('ERROR - no rows inserted!!');
           return 0;
          else
           return v_****Id;
        end if;

   END Create****ransaction;

1 个答案:

答案 0 :(得分:0)

“编辑”的目的是确保没有任何人无法访问数据。

一旦您对策略1 = 1应用了修订,那么它将适用于除SYS之外的所有用户,并且它将不允许CTAS或作为select插入。有解决方法,或者您可以说另一种向合法用户提供访问权限的方法。

如果您需要更多详细信息,请告诉我。