Привилегии, потерянные после удаления объектов в Oracle

У меня есть хранилище данных, которое состоит из определенной схемы отчетности. Любой, кому предоставлен доступ к нему, получит привилегии для объектов в этой схеме. Однако всякий раз, когда я отбрасываю объекты, эти привилегии теряются.

Каковы лучшие решения для такой проблемы, чтобы сохранить существующие привилегии?

1 ответ

Каковы лучшие решения для такой проблемы, чтобы сохранить существующие привилегии?

Лучшее решение - не бросать предметы. Постоянное удаление и повторное создание объектов, особенно таблиц, является плохой практикой. Нет необходимости делать это в живой среде. Проблема, с которой сталкивается данная практика, может быть лучше решена с помощью правильной команды TRUNCATE или соответствующей структуры данных GLOBAL TEMPORARY TABLE.

Тем не менее, похоже, что вы попадаете в заумный проект, который настаивает на правильности этой плохой практики. Таким образом, вам нужно удалить и заново создать таблицы, а затем вам необходимо повторно предоставить привилегии пользователям этих таблиц **(*)**. Это должно быть довольно просто: скрипт для создания таблицы, на которую вы должны ссылаться в этом упражнении, должен также содержать операторы для предоставления необходимых привилегий.

Конечно, это предполагает, что ваш проект следует хорошей практике в отношении контроля версий сценариев DDL. В этих условиях мои надежды не высоки.


(*) Необходимость сделать это - одна из причин, по которой выбрасывание таблиц является плохой практикой.

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