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

Home -> Community -> Mailing Lists -> Oracle-L -> Re: ORA-01031: Insufficient Privileges (Urgent)

Re: ORA-01031: Insufficient Privileges (Urgent)

From: Stuart Lindenmayer <stuart.lindenmayer_at_gmail.com>
Date: Fri, 1 Sep 2006 00:38:21 +1000
Message-ID: <f5c9a7e80608310738t3bd2ef36ka75adb8de279ee83@mail.gmail.com>


Hi,
I think you may be missing a "grant select on vw_qqqq to y;" Due to Oracle's definer rights model there should be no need to grant select or execute on the underlying objects to the other user. I ran the following on a 9i database without a problem:

SQL> create user test1 identified by test1 default tablespace users temporary tablespace temp;

User created.

SQL> create user test2 identified by test2 default tablespace users temporary tablespace temp;

User created.

SQL> grant connect, resource to test1, test2;

Grant succeeded.

SQL> conn test1/test1
Connected.

SQL> create table t1 (n1 number);
Table created.

SQL> create table t2 (v1 varchar2(10));
Table created.

SQL> create function f1 return date is
  2 begin
  3 return sysdate;
  4 end;
  5 /

Function created.

SQL> create view v1 as
  2 select n1, v1, f1 from t1, t2;
View created.

SQL> insert into t1 values (1);
1 row created.

SQL> insert into t2 values ('a');
1 row created.

SQL> select * from v1;

        N1 V1 F1
---------- ---------- ---------

         1 a 01-SEP-06
1 row selected.

SQL> grant select on v1 to test2;
Grant succeeded.

SQL> conn test2/test2
Connected.

SQL> select * from test1.v1;

        N1 V1 F1
---------- ---------- ---------

         1 a 01-SEP-06
1 row selected.

SQL> Cheers,

Stu.

On 9/1/06, crcbedoy_at_proteccion.com.co <crcbedoy_at_proteccion.com.co> wrote:
>
>
> Hi all,
>
> I am in a tough situation :(, I have searched around, lots of FAQs,
> newsgroups, etc and my problem continues:(. I have followed all of
> the instructions given to other users with similar problems, but nothing
> seems to work because the error message keeps appearing.
>
> My problem is: We have a view, this view is owned by X user and it's
> called by Y user.
>
> connect as y/y;
> select * from x.vw_qqqq;
> ORA-01031: Insufficient Privileges
>
> Now, this view is making a query to two tables:
> x.table1
> x.table2
> It's also invoking the function: x.function1
>
> We have a rol (since this view and other objects owned by this schema are
> going to be invoked by several other users), which is: rol_y, I granted the
> privileges with my username (A, granted with DBA privileges):
>
> connect A/A;
> GRANT SELECT ON x.table1 TO rol_y;
> GRANT SELECT ON x.table2 TO rol_y;
> GRANT ALL ON x.function1 TO rol_y;
>
> And then:
> connect as y/y;
> select * from x.vw_qqqq;
> ORA-01031: Insufficient Privileges
>
> I then tried to:
>
> connect A/A;
> GRANT SELECT ON x.table1 TO y;
> GRANT SELECT ON x.table2 TO y;
> GRANT ALL ON x.function1 TO y with grant option;
>
> I then created the synonyms to x.table1, x.table2 and x.function1 on
> schema y. I tried again and ORA-01031: Insufficient Privileges.
> I tried querying the tables one by one and there are no errors, but when I
> try to execute the function, it gives me the error: Function must declared.
> After updating the view and canceling the function invoke, user x can
> query the view without any problem. Any help? hope? advice?..
>
> S.O.S!!!!:(
>
>
>
> Isabel Bedoya Gómez
> Centro de Gestión y Control
> Tel. 2307500 ext:
>

--
http://www.freelists.org/webpage/oracle-l
Received on Thu Aug 31 2006 - 09:38:21 CDT

Original text of this message

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