«Нет привилегий» при создании таблицы с индексом организации - PullRequest
1 голос
/ 31 марта 2020

Я использую Oracle 11.g, и используемый мной идентификатор имеет роль администратора базы данных (предположительно, полный доступ).

Когда я пытался создать таблицу в другой схеме, она работает нормально. Однако, когда я попытался создать таблицу с индексом организации , мне было предложено

ORA-01950: no privileges on tablespace

Я дважды проверил, что у моего идентификатора неограниченное табличное пространство. Мой идентификатор и целевая схема находятся в одном табличном пространстве.

Дополнительная информация: я могу выполнить один и тот же оператор создания таблицы с индексом организации в моей собственной схеме.

Ответы [ 2 ]

1 голос
/ 04 апреля 2020

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

alter user $username quota unlimited on $tablespace;

Этот подход безопаснее, чем предоставление роли UNLIMITED TABLESPACE. Эта роль предоставляет больше, чем необходимо, и если кто-то позже попытается очистить привилегии, отмена этой роли также отменяет отдельные привилегии, как описано в этой статье .

1 голос
/ 31 марта 2020

Я предоставил целевой schedma неограниченное табличное пространство, и оно разрешено.

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