Oracle AQ Operations Privileges
August 15, 2009 17:15:59 Last update: August 15, 2009 17:28:29
| Operations | Privileges Required |
|---|---|
CREATE/DROP/MONITOR
own queues | Must have EXECUTE rights on DBMS_AQADM |
ENQUEUE/DEQUEUE
to own queues | Must have EXECUTE rights on DBMS_AQ |
ENQUEUE/DEQUEUE
to other's queues | Must have EXECUTE rights on DBMS_AQ
Queue owner must grant privileges using DBMS_AQADM.GRANT_QUEUE_PRIVILEGE |
CREATE/DROP/MONITOR
any queues | Must have EXECUTE rights on DBMS_AQADM
Must be granted AQ_ADMINISTRATOR_ROLE |
ENQUEUE/DEQUEUE
to any queues | Must have EXECUTE rights on DBMS_AQ
Must be granted " ENQUEUE_ANY" or "DEQUEUE_ANY" system privileges using DBMS_AQADM.GRANT_SYSTEM_PRIVILEGE |
Examples:
-- Create an admin CREATE ROLE MY_AQ_ADMIN_ROLE; GRANT CONNECT, RESOURCE, AQ_ADMINISTRATOR_ROLE TO MY_AQ_ADMIN_ROLE; CREATE USER AQADMIN IDENTIFIED BY aqadmin DEFAULT TABLESPACE tab TEMPORARY TABLESPACE temp; GRANT MY_AQ_ADMIN_ROLE TO AQADMIN; -- create a user CREATE ROLE MY_AQ_USER_ROLE; GRANT CREATE SESSION, AQ_USER_ROLE TO MY_AQ_USER_ROLE; EXEC DBMS_AQADM.GRANT_SYSTEM_PRIVILEGE( PRIVILEGE => 'ENQUEUE_ANY', GRANTEE => 'MY_AQ_USER_ROLE', ADMIN_OPTION => FALSE); EXEC DBMS_AQADM.GRANT_SYSTEM_PRIVILEGE( PRIVILEGE => 'DEQUEUE_ANY', GRANTEE => 'MY_AQ_USER_ROLE', ADMIN_OPTION => FALSE); CREATE USER AQUSER IDENTIFIED BY aquser DEFAULT TABLESPACE tab TEMPORARY TABLESPACE temp; GRANT MY_AQ_USER_ROLE TO AQUSER;
Easy email testing with http://www.ximailstop.com