изменить индекс по схемам - PullRequest
2 голосов
/ 30 октября 2008

Я синхронизирую таблицы, используя хранимую процедуру PL / SQL как часть веб-приложения - когда они нажимают на кнопку, выполняется синхронизация. PL / SQL выполняется как пользователь A, но ему необходимо отключить индексы и синхронизировать несколько таблиц в схеме B. Я не могу заставить пользователя A «изменить индекс B.indexName непригодным для использования», несмотря на то, что ему предоставлено «изменить любой индекс», и в отчаянии даже DBA. Ошибка ORA-01418: указанный индекс не существует. Это работает в песочнице другого разработчика, но я не могу понять, почему. Любые предложения будут оценены.

Ответы [ 3 ]

1 голос
/ 30 октября 2008

Вы предоставляете привилегию ALTER ANY INDEX через роль? Или привилегия предоставляется непосредственно пользователю A?

Привилегии, предоставляемые через роль (например, DBA), недоступны для хранимых процедур прав определителя (по умолчанию). Только привилегии, которые предоставляются непосредственно пользователю, доступны в хранимой процедуре определения прав.

0 голосов
/ 30 октября 2008

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

0 голосов
/ 30 октября 2008

Индекс существует? Я не раз терял время, не принимая сообщения об ошибке по номиналу.

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