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)

Mercadante, Thomas F





Has role_y been granted to the y user?


Here is what I would do.


Revoke everything from user y.

Connect as user x. 

grant select on vw_qqqq to role_y.


You do not need to grant access to the underlying tables or the function that the view is using.  That is why we build views – to prevent access to tables.  Grant everything to the role and grant the role to the user.


Also, always perform the grants from the user who owns the objects.  This is not a requirement, but it can makes things clearer in your head.  Think of ownership of the objects and who can grant access to the objects you own.  You wouldn’t want your neighbor to lend the keys to your car to someone else.  So why do that here?


Hope this helps.


This transmission may contain confidential, proprietary, or privileged information which is intended solely for use by the individual or entity to whom it is addressed.  If you are not the intended recipient, you are hereby notified that any disclosure, dissemination, copying or distribution of this transmission or its attachments is strictly prohibited.  In addition, unauthorized access to this transmission may violate federal or State law, including the Electronic Communications Privacy Act of 1985.  If you have received this transmission in error, please notify the sender immediately by return e-mail and delete the transmission and its attachments.

From: oracle-l-bounce@freelists.org [mailto:oracle-l-bounce@freelists.org] On Behalf Of crcbedoy@proteccion.com.co
Sent: Thursday, August 31, 2006 10:20 AM
To: Oracle-L@FreeLists.org
Subject: ORA-01031: Insufficient Privileges (Urgent)



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:
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?..

Isabel Bedoya Gómez
Centro de Gestión y Control
Tel. 2307500 ext: