sql >> Databasteknik >  >> RDS >> Oracle

Rätt sätt att ge användare tillgång till ytterligare scheman i Oracle

AFAIK måste du göra bidragsobjektet ett i taget.

Vanligtvis skulle du använda ett skript för att göra detta, något i stil med:

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

Och liknande för andra db-objekt.

Du kan lägga ett paket i varje schema som du behöver för att utfärda bidraget från vilket kommer att gå igenom alla anrop till varje GRANT-uttalande via en EXECUTE IMMEDIATE.

t.ex.

   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. Använder grupp efter på två fält och räkna i SQL

  2. Hur man migrerar från MSSQL till MySQL

  3. ODBC-åtkomst från Windows Server Core

  4. Hur man släpper alla standardbegränsningar i SQL Server Database - SQL Server / TSQL Tutorial Del 94