Написать триггер для базы данных Oracle

1 300 руб. за проект
01 февраля 2024, 12:54 • 4 отклика • 25 просмотров
Предыстория:

В базе данных Oracle существует две схемы (дальше буду обозначать их С1 и С2).

В С1 хранится несколько тысяч таблиц, С2 имеет доступ (только на SELECT) к примерно половине из них (но не ко всем!). В силу ряда "исторически сложившихся" обстоятельств, взаимодействие между схемами построено на публичных синонимах (PUBLIC SYNONYM). У С2 собственных таблиц нет. У С1 есть привилегия на создание публичных синонимов.

В последнее время в С1 пользователи начали активно создавать новые таблицы. Вручную давать права для С2 и создавать публичные синонимы стало немного муторно.

Задача:

Разработать триггер для С1, который будет при создании новой таблицы в С1:

1) Давать С2 права на SELECT к данной таблице;
2) Создавать новый глобальный синоним для созданной таблицы. Имя публичного синонима соответствует имени новой таблицы. Допускается использовать CREATE OR REPLACE.

Тестирование будет достаточно простым:

1. В С1 создаётся новая таблица "new_table", добавляются несколько записей;
2. По учётной записью С2 выполняется запрос SELECT * FROM new_table. Запрос должен вернуть все записи, добавленные в новую таблицу.
3. Под учётной записью C2 выполняется запрос SELECT * FROM ALL_SYNONYMS WHERE owner='PUBLIC' AND synonym_name='new_table'. Запрос должен вернуть одну запись с новым публичным синонимом.

Разумеется, что вместо "new_table" мною может быть использовано абсолютно любое имя таблицы, синтаксически допустимое Oracle. В триггере имя таблицы в явном виде использоваться не должно.
Отзывы
Avatar r50 a6ce93fe35b158fd29ba0e8681c918c22117160e9586a56eee4ffbc20df9bda1
Заказчик
Самые наилучшие впечатления от работы с Александром. Заказ выполнен в полном объеме. Отдельно отмечу уровень владения Oracle, благодаря которому было предложено оригинальное решение.
11 месяцев назад
Avatar r50 a6ce93fe35b158fd29ba0e8681c918c22117160e9586a56eee4ffbc20df9bda1
Фрилансер
Все четко и по делу.
Указаны ошибки предыдущих кандидатов, не справившихся с задачей.
Оплата без проблем.
Рекомендую.
11 месяцев назад