title: Oracle Security - how to prevent a User from DROP TABLE its own tables
body: <p>As security tightening exercise, I'm removing all system privileges from an oracle database user. Now this user ONLY has the following system privileges:</p>
  
  <ul>
  <li>CREATE SESSION</li>
  <li>UNLIMITED TABLESPACE</li>
  </ul>
  
  <p>I was hoping that the user wont be able to do any DDL commands. But to my surprise, user can DROP TABLE in its own schema even though it can't create one.</p>
  
  <p>Oracle <a href="http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_9003.htm" rel="nofollow">documentation</a> says prerequisite for DROP TABLE is "The table must be in your own schema or you must have the DROP ANY TABLE system privilege". Just that!!! I don't understand the security logic of Oracle but is there any way I can prevent Users from dropping their own tables?</p>
  
  <p>The alternative would be creating another user to run the application and grant object access, which I'd rather like to avoid as there are potential issues.</p>