sql >> Database >  >> RDS >> Oracle

Correcte manier om gebruikers toegang te geven tot aanvullende schema's in Oracle

AFAIK, je moet de beurzen één voor één doen.

Normaal gesproken zou je hiervoor een script gebruiken, iets in de trant van:

SELECT 'GRANT ALL ON '||table_name||' TO BOB;'
FROM   ALL_TABLES
WHERE  OWNER = 'ALICE';

En vergelijkbaar voor andere db-objecten.

Je zou in elk schema een pakket kunnen plaatsen dat je nodig hebt om de subsidie ​​uit te geven, van waaruit alle GRANT-instructies worden aangeroepen via een EXECUTE IMMEDIATE.

bijv.

   PROCEDURE GRANT_TABLES
   IS
   BEGIN

      FOR tab IN (SELECT table_name
                  FROM   all_tables
                  WHERE  owner = this_user) LOOP
         EXECUTE IMMEDIATE 'GRANT SELECT, INSERT, UPDATE, DELETE ON '||tab.table_name||' TO other_user';
      END LOOP;
   END;


  1. MySQL utf8mb4, fouten bij het opslaan van emoji's

  2. Waarom lijk ik Oracle 11g niet te dwingen meer CPU's te verbruiken voor een enkele SQL-query?

  3. MySql zet rij om in kolom en kolom in rij

  4. Inleiding tot Firebase