Oracle: Можете ли вы предоставить CREATE GLOBAL TEMPORARY TABLE конкретно? - PullRequest
0 голосов
/ 06 июля 2018

Можете ли вы предоставить привилегию только для создания глобальной временной таблицы, т. Е. Без CREATE TABLE?

Предпосылки этого проистекают из моделей безопасности, которые не позволяют 'CREATE TABLE' ... Я не могу найти ссылку на какие-либо конкретные привилегии.

1 Ответ

0 голосов
/ 06 июля 2018

Я не могу найти ссылку на какие-либо конкретные привилегии.

Потому что, насколько я знаю, их нет. Вам все равно придется предоставить пользователю CREATE TABLE привилегию, чтобы он мог создавать TEMPORARY таблиц.

Чтобы запретить пользователю создавать обычные таблицы и разрешить ему создавать только временные таблицы, вы можете рассмотреть следующие вопросы:

Предоставить пользователю CREATE TABLE привилегию и отменить квоту для определенного табличного пространства.

alter user <<user_name>> quota 0M on <<tablespace>>;

Это может быть табличное пространство пользователя по умолчанию или другое.

В версиях Oracle без DEFFERED_SEGMENT_CREATION пользователю будет достаточно увидеть space quota exceeded for tablespace, когда он попытается создать обычную таблицу.

В версии Oracle с DEFFERED_SEGMENT_CREATION пользователь по-прежнему сможет создавать обычные таблицы, но не сможет их заполнять. Когда пользователь пытается выполнить оператор INSERT, появляется space quota exceeded for tablespace.

Так что вы можете установить deferred_segment_creation параметр на false.

alter system set deferred_segment_creation = false;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...