title: Run Oracle function without access to underlying table
body: <p>I have a simple function created in Oracle database
  taken from <a href="https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_5009.htm" rel="nofollow noreferrer">https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_5009.htm</a></p>
  
  <pre><code>CREATE FUNCTION get_bal(acc_no IN NUMBER) 
     RETURN NUMBER 
     IS acc_bal NUMBER(11,2);
     BEGIN 
        SELECT order_total 
        INTO acc_bal 
        FROM orders 
        WHERE customer_id = acc_no; 
        RETURN(acc_bal); 
      END;
  /
  </code></pre>
  
  <p>This is created by user A
  I want to </p>
  
  <pre><code>GRANT EXECUTE ON FUNCTION GET_BAL TO USER B
  </code></pre>
  
  <p>But user B does not have access to underlying table ORDERS</p>
  
  <p>Will user B still be execute the function or will he need access to the underlying table as well?</p>
  
  <p>Thanks
  P</p>