Неа. Вы либо даете им select any table
и позволяете им читать любую таблицу в базе данных, либо вы предоставляете им доступ к каждой таблице в TempDBUser
в отдельности. В подавляющем большинстве случаев вам нужно предоставить им доступ к каждой таблице в TempDBUser
(предположительно, через роль, потому что будет много учетных записей разработчиков, которым необходимо выполнять запросы).
Мне не понятно, почему предоставление доступа на уровне объектов для вас проблематично. «Изменения структуры таблицы» не требуют новых грантов, поскольку они являются просто изменениями существующих объектов. Если вы действительно имеете в виду, что новые таблицы создаются часто, вам просто нужно включить гранты в процесс управления изменениями и развертывания.
Если у вас есть упакованное приложение, которое периодически создает новые таблицы (ужасная практика)Вы можете создать триггер DDL, который выдает грант каждый раз, когда в TempDBUser
создается новая таблица. Вам понадобится триггер DDL, который отправит задание через пакет dbms_job
, который фактически предоставил грант, который является довольно запутанной архитектурой, но он работает.