In writing a blog post about:
Creating a Read Only Database User Account in an Oracle Database
It came to my attention of the new “READ” object privilege, which is a New Feature in 12.1.0.2:
Changes in Oracle Database 12c Release 1 (12.1.0.2)
READ and SELECT Object Privileges
The “SELECT” object privilege in addition to querying the table, allows the user to:
LOCK TABLE table_name IN EXCLUSIVE MODE;
SELECT … FROM table_name FOR UPDATE;
The New Feature of “READ” object privilege, does not allow the user to lock tables in exclusive mode nor select table for update.
Prior to 12.1.0.2, the “SELECT” object privilege is only available which allows the locking:
GRANT SELECT ON ... TO ...;
12.1.0.2 onwards, the new “READ” object privilege is available which doesn’t allow the locking:
GRANT READ ON ... TO ...;
This also applies to the “SELECT ON ANY TABLE“, prior to 12.1.0.2 which allows the locking:
GRANT SELECT ANY TABLE TO ...;
12.1.0.2 onwards, the new “READ ON ANY TABLE” object privilege is available which doesn’t allow the locking:
GRANT READ ANY TABLE TO ...;
If you found this blog post useful, please like as well as follow me through my various Social Media avenues available on the sidebar and/or subscribe to this oracle blog via WordPress/e-mail.
Thanks
Zed DBA (Zahid Anwar)
Pingback: Creating a Read Only Database User Account in an Oracle Database | Zed DBA's Oracle Blog