Oracle Training Oracle Support Development Oracle Apps

 E-mail Us
 Oracle Articles
New Oracle Articles

 Oracle Training
 Oracle Tips

 Oracle Forum
 Class Catalog

 Remote DBA
 Oracle Tuning
 Emergency 911
 RAC Support
 Apps Support
 Oracle Support

 SQL Tuning

 Oracle UNIX
 Oracle Linux
 Remote s
 Remote plans
 Application Server

 Oracle Forms
 Oracle Portal
 App Upgrades
 SQL Server
 Oracle Concepts
 Software Support

 Remote S


 Consulting Staff
 Consulting Prices
 Help Wanted!


 Oracle Posters
 Oracle Books

 Oracle Scripts

Don Burleson Blog 









Oracle Business Intelligence, OLAP and BI training and consulting tips . . .

Click here for more
Oracle News Headlines







Creating Oracle Application Roles
February 7, 2004
Mark Rittman

"I am facing some problem while creating roles for a user.

I have an user say "Test1". I wanna create 3 different roles for this user say. "roleRead", "rolewrite" and "roleAll". Can you provide me the details of creating roles and how to assign access controls ( Readonly, Read/Write, and all) to these roles?"

In Oracle, you can create roles by using the following command;

CREATE ROLE roleRead IDENTIFIED BY <password>;
CREATE ROLE roleWrite IDENTIFIED BY <password>;

The INDENTIFIED BY part is optional and specifies that the role can only be worked with if a password is specified.

Next, you assign object priviledges to the role. Assuming that one of your tables that you wish to control access to is called CUSTOMERS, you'd assign the priviledges as follows;

GRANT select ON customers TO roleRead;

GRANT insert, update ON customers To roleWRITE;

GRANT insert, update, delete, select ON customers to roleALL;

If you had more tables than CUSTOMER to grant privileges on, you'd repeat the above statements for each table you want to control access to.

Then, for your user you wished to assign roles to, you would carry out the following (all roles are cumulative);

GRANT roleRead TO test1;

GRANT roleWrite to test1;

GRANT roleALL to test;1

and to revoke these privileges you would issue the commands;

REVOKE roleRead FROM test1;

REVOKE roleWrite FROM test1;

REVOKE roleALL from test1;

To be honest, these are pretty fundamental Oracle concepts, and you'd do well to take a look at the online documentation. In particular, take a look at



Oracle Training at Sea
oracle dba poster

Follow us on Twitter 
Oracle performance tuning software 
Oracle Linux poster


Burleson is the American Team

Note: This Oracle documentation was created as a support and Oracle training reference for use by our DBA performance tuning consulting professionals.  Feel free to ask questions on our Oracle forum.

Verify experience! Anyone considering using the services of an Oracle support expert should independently investigate their credentials and experience, and not rely on advertisements and self-proclaimed expertise. All legitimate Oracle experts publish their Oracle qualifications.

Errata?  Oracle technology is changing and we strive to update our BC Oracle support information.  If you find an error or have a suggestion for improving our content, we would appreciate your feedback.  Just  e-mail:  

and include the URL for the page.


Burleson Consulting

The Oracle of Database Support

Oracle Performance Tuning

Remote DBA Services


Copyright © 1996 -  2017

All rights reserved by Burleson

Oracle ® is the registered trademark of Oracle Corporation.

Remote Emergency Support provided by Conversational