From 11g onward you can make a table read only
SQL> select owner,table_name,STATUS,READ_ONLY from dba_tables where table_name='DBACLASS'; OWNER TABLE_NAME STATUS READ_ONLY ------------------------------ ------------------------------ -------- --------- TEST DBACLASS VALID NO SQL> alter table test.dbaclass read only; Table altered. SQL> SQL> select owner,table_name,STATUS,READ_ONLY from dba_tables where table_name='DBACLASS'; OWNER TABLE_NAME STATUS READ_ONLY ------------------------------ ------------------------------ -------- -------- TEST DBACLASS VALID YES
Now if you try to insert or update anything, it will throw error.
SQL> conn test/test; Connected. SQL> insert into dbaclass values ( 1); insert into dbaclass values ( 1) * ERROR at line 1: ORA-12081: update operation not allowed on table "TEST"."DBACLASS"
You can revert the changes and make it read write
SQL> alter table dbaclass read write; Table altered. SQL> insert into dbaclass values ( 1); 1 row created.