ORA-01031: insufficient privileges

Posted on 2006-11-21
Last Modified: 2008-01-09

I've recently installed Oracle10g and I'm testing some of our App DBA scripts but I'm running into "Insufficient Privileges" errors.  In Oracle8i and 9i, I granted our schema owner the following privs:

grant connect to schema_owner;
grant unlimited tablespace to schema_owner;
grant create any trigger to schema_owner;
grant create any procedure to schema_owner;
grant create public database link to schema_owner;
grant drop public database link to schema_owner;
grant create public synonym to schema_owner;
grant drop public synonym to schema_owner;
grant create role to schema_owner;
grant drop any role to schema_owner;

With these grants, specifically the unlimited tablespace, I was able to create any database object as the schema_owner…..sequences, tables, indexes, procs, funcs, trigs, etc.  Besides granting the schema_owner everything under the sun, is there a role in Oracle10g that applies to schema owners ?  Any best practices ?

Question by:timboc
LVL 29

Expert Comment

ID: 17990391

Grant RESOURCE to Schema_Owner;

Author Comment

ID: 17990821
Hi Mike,

My schema owner also needs to create jobs.  For Oracle10g, I noticed the role scheduler_admin.   The other important thing is that I need to ensure that these scripts will continue to work in Oracle8i and 9i.

LVL 29

Accepted Solution

MikeOM_DBA earned 43 total points
ID: 17991292

There is no scheduler in 8i and 9i, but you could create a scheduler_admin role with 'CREATE ANY JOB' privilege in these versions.

-- OR --

Temporarily GRANT DBA privilege and after installation revoke DBA.

PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

LVL 28

Assisted Solution

by:Naveen Kumar
Naveen Kumar earned 41 total points
ID: 17994325
You many want this to give

grant SELECT ANY DICTIONARY to Schema_Owner; because somewhere down the line you may need it because some of your scripts might be trying some data dictionary view of SYS.

LVL 28

Expert Comment

by:Naveen Kumar
ID: 17994341
you may also want to try :


Search for the above words in the below URL:



Assisted Solution

sunnypoint earned 41 total points
ID: 18056265
grant create role to schema_owner;
This is not enough.

Try this:
grant create table to schema_owner;
This must be granted from sys schema

If this works for you, I'll explain it.

Expert Comment

ID: 20296257
Forced accept.

EE Admin

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Oracle function works in 11g but not in 12c 21 72
Encryption Decryption in Oracle 12 107
sql for Oracle views 8 48
automatic email alert 1 42
Subquery in Oracle: Sub queries are one of advance queries in oracle. Types of advance queries: •      Sub Queries •      Hierarchical Queries •      Set Operators Sub queries are know as the query called from another query or another subquery. It can …
How to Create User-Defined Aggregates in Oracle Before we begin creating these things, what are user-defined aggregates?  They are a feature introduced in Oracle 9i that allows a developer to create his or her own functions like "SUM", "AVG", and…
This video shows setup options and the basic steps and syntax for duplicating (cloning) a database from one instance to another. Examples are given for duplicating to the same machine and to different machines
This video shows how to set up a shell script to accept a positional parameter when called, pass that to a SQL script, accept the output from the statement back and then manipulate it in the Shell.

920 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now