2008-10-30 1 views
2

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

+0

Упс, я немного опередил себя последним сообщением. Индекс alter не работает, и SQL завершает работу до того, как он удалит все из таблицы. Затем он пытается делать вставки и терпит неудачу в отношении ограничения целостности. – user32845 2008-10-30 18:54:10

ответ

1

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

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

+0

Он предоставляется непосредственно пользователю A как sys. – user32845 2008-10-30 18:13:24

+0

Я не уверен, что здесь означает «как sys» во фразе «для пользователя A as sys». Вы писали что вы запустили инструкцию GRANT ALTER ANY INDEX TO userA вышел из системы, вошел в систему и код все еще не работает? – 2008-10-30 18:17:55

0

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

0

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

 Смежные вопросы

  • Нет связанных вопросов^_^