Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Bug/Feature of Fine-Grained Access Control ???

Bug/Feature of Fine-Grained Access Control ???

From: <michael_bialik_at_my-deja.com>
Date: Wed, 15 Dec 1999 20:43:51 GMT
Message-ID: <838ui5$j1c$1@nnrp1.deja.com>


Hi.

 I'm trying to implement fine-grained access control for  hierarchical table.
 I have to enable access for ONE branch only of that table ( code 30000  at top level ).
 In order to do it I created 2 functions :

  1. First function ( FUNCTION_A ) accepts subject code, makes a SELECT ... CONNECT BY PRIOR from SUBJECT_STUDY table and returns 1 if it is withit correct branch.
  2. Second function implements security policy and returns string "function_a ( subject_code ) = 1". It is connected to the same SUBJECT_STUDY table. The problem is that during execution of "SELECT * FROM SUBJECT_STUDY" Oracle performs security policy function, calls FUNCTION_A that contains SELECT from the same table and starts recursive LOOP.

 I tried playing with INVOKER RIGHTS feature, but to no avail.

 Any ideas??

 TIA. Michael.

 For any really interested here are definitions.  You need 2 users:
   1 - execute all definitions ( I used OPS$ORACLE )    2 - Run SELECT * FROM SUBJECT_STUDY ( M2225283 in my example ).

  IF status = 1 THEN
    t_value := 1;
  END IF;   RETURN t_value;
EXCEPTION
  WHEN OTHERS THEN
    RETURN 0;
END;
--

GRANT EXECUTE ON f_in_30000 TO PUBLIC;
--

Sent via Deja.com http://www.deja.com/
Before you buy. Received on Wed Dec 15 1999 - 14:43:51 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US