Home
All Oracle Error Codes
Oracle DBA Forum

Frequent Oracle Errors

TNS:could not resolve the connect identifier specified
Backtrace message unwound by exceptions
invalid identifier
PL/SQL compilation error
internal error
missing expression
table or view does not exist
end-of-file on communication channel
TNS:listener unknown in connect descriptor
insufficient privileges
PL/SQL: numeric or value error string
TNS:protocol adapter error
ORACLE not available
target host or object does not exist
invalid number
unable to allocate string bytes of shared memory
resource busy and acquire with NOWAIT specified
error occurred at recursive SQL level string
ORACLE initialization or shutdown in progress
archiver error. Connect internal only, until freed
snapshot too old
unable to extend temp segment by string in tablespace
Credential retrieval failed
missing or invalid option
invalid username/password; logon denied
unable to create INITIAL extent for segment
out of process memory when trying to allocate string bytes
shared memory realm does not exist
cannot insert NULL
TNS:unable to connect to destination
remote database not found ora-02019
exception encountered: core dump
inconsistent datatypes
no data found
TNS:operation timed out
PL/SQL: could not find program
existing state of packages has been discarded
maximum number of processes exceeded
error signaled in parallel query server
ORACLE instance terminated. Disconnection forced
TNS:packet writer failure
see ORA-12699
missing right parenthesis
name is already used by an existing object
cannot identify/lock data file
invalid file operation
quoted string not properly terminated

Re: ORA-01031: Insufficient Privileges (Urgent)

Stuart Lindenmayer

2006-08-31

Replies:
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@proteccion.com.co <crcbedoy@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: