Question

Hi I have a small question. I need some suggestions on how to solve this problem.

I have database A,B,C,D. D access data from A,B,C in all environments (DEV,UAT,PROD).

SO whenever database A,B,C get refreshed from PROD all the grants from the respective databases to D in DEV/UAT are being lost by which I need to run all the grants again in these environments.

Is there an approach that I can use so that this problem won't be repeated going forward.

Was it helpful?

Solution

Following recommendations to solve the problem:

  1. If you are using expdp/impdp, make sure that you have not mentioned "exclude=grant" on the expdp/impdp command. By default, grants on the objects also gets exported/imported if you don't exclude it in the command.

  2. If you are using link server and created refreshed objects using drop and create(i.e. CTAS), populate data using insert into table(field list) select field_list from remote_table@link_server_name. so that you will not loose permission on the table. Please be informed that it's required to truncate the destination table or insert incremental rows if it's feasible.

  3. It's feasible to use other sync process using industry standard tools like oracle data guard, stream and golden gate if you have license to use them in production.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top