Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Prawidłowy sposób zapewniania użytkownikom dostępu do dodatkowych schematów w Oracle

AFAIK musisz wykonać granty pojedynczo.

Zazwyczaj używa się do tego skryptu, coś w stylu:

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

I podobnie dla innych obiektów db.

Możesz umieścić pakiet w każdym schemacie, który chcesz wydać grant, z którego przejdzie przez wszystkie wywołania każdej instrukcji GRANT poprzez EXECUTE IMMEDIATE.

np.

   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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Znajdowanie przyczyny błędu zakleszczenia w pliku śledzenia Oracle

  2. sposoby na uniknięcie globalnych tabel tymczasowych w Oracle

  3. Nie ważny miesiąc na wyciągu INSERT

  4. ALTER &DROP Table DDL z natychmiastowym wykonaniem w bazie danych Oracle

  5. OracleParameter i klauzula IN