Разрешения для двух схем в Oracle

У меня две схемы МОНИТОРИНГ и МОНИТОРИНГ_КОНФИГУРАЦИЯ. Я пытаюсь создать таблицу, к которой имеют доступ обе схемы. Я запускаю сценарий как MONITORING_CONFIGURATION, но не исключено, что он будет работать как MONITORING. Могу ли я просто проигнорировать ошибку, которую я получаю на GRANT, и получить разрешения, потому что я создал таблицу как MONITORING_CONFIGURATION, по-прежнему достигая цели таблицы, к которой обе схемы имеют доступ? Ошибка SQL-Fehler: ORA-01749: you may not GRANT/REVOKE privileges to/from yourself 01749. 00000 - "you may not GRANT/REVOKE privileges to/from yourself"

  CREATE TABLE "MONITORING"."WEB_SERVICE_STATUS" 
   (    "WEB_SERVICE_STATUS_ID" NUMBER, 
    "WEB_SERVICE_ID" NUMBER, 
    "STATUS" CHAR(1)
   );
  GRANT ALTER, DELETE, INDEX, INSERT, SELECT, UPDATE, REFERENCES, ON COMMIT REFRESH, QUERY REWRITE, DEBUG, FLASHBACK ON "MONITORING"."WEB_SERVICE_STATUS" TO "MONITORING_CONFIGURATION";

Когда я делаю select * from "MONITORING"."WEB_SERVICE_STATUS";, оказывается, что у меня есть разрешение SELECT.

Я думаю, что я разделю сценарий на две части, одну для запуска MONITORING_CONFIGURATION, а другую - для MONITORING.

Adder 04.06.2018 16:32
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
1
87
3

Ответы 3

Я бы бросил стол, а затем повторно запустил этот точный сценарий как МОНИТОРИНГ. Тогда вы узнаете, что у вас есть правильные гранты для обоих пользователей.

Помогает ли следующее - используйте PLSQL, чтобы добавить логику относительно того, что текущему пользователю будет предпринято соответствующее действие с помощью динамического SQL с использованием EXECUTE IMMEDIATE:

DECLARE
   vsql VARCHAR2(1000);
BEGIN
   IF user = 'MONITORING' THEN
      DBMS_OUTPUT.PUT_LINE ( ' Running as ' || USER || ' - creating table' );
      vsql := 'CREATE TABLE "MONITORING"."WEB_SERVICE_STATUS" 
   (    "WEB_SERVICE_STATUS_ID" NUMBER, 
    "WEB_SERVICE_ID" NUMBER, 
    "STATUS" CHAR(1)
   )';
      EXECUTE IMMEDIATE vsql;
      DBMS_OUTPUT.PUT_LINE ( ' Running as ' || USER || ' - issuing grant' );
      vsql := ' GRANT ALTER, DELETE, INDEX, INSERT, SELECT, UPDATE, REFERENCES, ON COMMIT REFRESH, QUERY REWRITE, DEBUG, FLASHBACK ON "MONITORING"."WEB_SERVICE_STATUS" TO "MONITORING_CONFIGURATION"';
      EXECUTE IMMEDIATE vsql;
   ELSE
      DBMS_OUTPUT.PUT_LINE ( ' Running as ' || USER || ' - no action taken' );
   END IF;
END;
/

Спасибо, это может быть полезно. Но я займусь этим с помощью решения с двумя сценариями, один из которых работает как MONITORING_CONFIGURATION, а другой - как MONITORING.

Adder 06.06.2018 16:06

Вы пытаетесь установить связь между схемой-?

CREATE PUBLIC DATABASE LINK MONITORING_CONFIGURATION
       USING 'MONITORING_CONFIGURATION'; 

Нет схемы, работающей в той же базе данных. Но спасибо за предложение.

Adder 06.06.2018 16:03

Другие вопросы по теме