Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.server -> Re: Confused about Synonyms
Phil Cook wrote:
>
> Compiling pl/sql and creating views requires explicit
> access to the objects that are being referenced if you
> are not the owner of the objects. Granting access through
> a role is not sufficient, you must be granted either execute
> ( pl/sql ) or select ( tables ) on the objects you are referencing.
I have a system running with pl/sql procedure where access is ONLY via roles:
SQL> SELECT * FROM USER_TAB_PRIVS WHERE TABLE_NAME = 'BEGIN_MOVE';
GRANTEE OWNER TABLE_NAME ------------------------------ ------------------------------ ------------------------------ GRANTOR PRIVILEGEGRA
------------------------------ ---------------------------------------- --- RFI_DRIVER RFI BEGIN_MOVE RFI EXECUTENO
RFI_OFFICE RFI BEGIN_MOVE RFI EXECUTENO
To my knowledge, only the owner can CREATE OR REPLACE a stored procedure. It cannot be delegated.
> With pl/sql, once you have compiled using privileges to the
> objects, other users can access those objects through the
> pl/sql without having access to the objects themselves, they
> will only need execute on the pl/sql object(s).
>
Then, why do my users log "Insufficient Privileges" when they try to color outside of the lines? Having EXECUTE access to a pl/sql procedure does not guarantee you can modify the referenced tables.
What you say IS true for VIEWS. No access is needed to a table if you have access to the view.
> Phil Cook
> Certified Oracle DBA / Oracle Education DBA Masters
>
> Graham Thornton <dangermouse_at_prodigy.nospam.net> wrote in article
> <01bcca04$35a7ca80$b0f7c9c7_at_dangermouse>...
> > I have created a table called SYS_DATATYPE under one user,
> > and provided a public synonym so that everyone else can
> > access it.
> >
> > I can describe, select, insert and delete from other users.
> >
> > However, when I try to compile a PL/SQL package with the a
> > variable defined as:
> >
> > myVariable in out SYS_DATATYPE.COBOL_STATUS%type
> >
> > Oracle tells me that SYS_DATATYPE is not defined.
> >
> > Chapter 6 of the PL/SQL User's Guide and Reference seems to
> > suggest this should work.
> >
> > Any suggestions?
> >
> > Thanks in advance
> >
> > Graham Thornton
> >
> > ------------------------
> >
> > remove the .nospam from the E-mail address to reply.
> >
Received on Thu Sep 25 1997 - 00:00:00 CDT
![]() |
![]() |