Oracle
 sql >> база данни >  >> RDS >> Oracle

Правилният начин за предоставяне на достъп на потребителите до допълнителни схеми в Oracle

AFAIK трябва да правите обекта за безвъзмездни средства един по един.

Обикновено бихте използвали скрипт, за да направите това, нещо от рода на:

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

И подобно за други db обекти.

Можете да поставите пакет във всяка схема, от която се нуждаете, за да издадете разрешението, от което ще премине през всички извиквания на всеки оператор GRANT чрез EXECUTE IMMEDIATE.

напр.

   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. Разбиране на Lob сегменти (SYS_LOB) в oracle?

  2. Промяна на таблицата за наблюдение в Oracle

  3. Изписване с главни букви на имената на дните и месеца при форматиране на дати в Oracle

  4. Логически изглед на модела на данни в R12.2

  5. Задаването на по-висок размер на извличане на ред на Oracle прави приложението ми по-бавно?