Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ORACLE :Are grants removed when an object is dropped?

I currently have 2 schemas, A and B.

B has a table, and A executes selects inserts and updates on it.

In our sql scripts, we have granted permissions to A so it can complete its tasks.

grant select on B.thetable to A
etc,etc

Now, table 'thetable' is dropped and another table is renamed to B at least once a day.

rename someothertable to thetable

After doing this, we get an error when A executes a select on B.thetable.

ORA-00942: table or view does not exist

Is it possible that after executing the drop + rename operations, grants are lost as well?

Do we have to assign permissions once again ?

update

someothertable has no grants.

update2

The daily process that inserts data into 'thetable' executes a commit every N insertions, so were not able to execute any rollback. That's why we use 2 tables.

Thanks in advance

like image 999
Tom Avatar asked Feb 02 '26 14:02

Tom


2 Answers

Yes, once you drop the table, the grant is also dropped.

You could try to create a VIEW selecting from thetable and granting SELECT on that.

Your strategy of dropping a table regularly does not sound quite right to me though. Why do you have to do this?

EDIT

There are better ways than dropping the table every day.

  1. Add another column to thetable that states if the row is valid.

  2. Put an index on that column (or extend your existing index that you use to select from that table).

  3. Add another condition to your queries to only consider "valid" rows or create a view to handle that.

  4. When importing data, set the new rows to "new". Once the import is done, you can delete all "valid" rows and set the "new" rows to "valid" in a single transaction.

If the import fails, you can just rollback your transaction.

like image 60
Peter Lang Avatar answered Feb 04 '26 06:02

Peter Lang


Perhaps the process that renames the table should also execute a procedure that does your grants for you? You could even get fancy and query the dictionary for existing grants and apply those to the renamed table.

like image 38
DCookie Avatar answered Feb 04 '26 06:02

DCookie



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!