2016-02-22 3 views
0

Я хочу добавить разделы в существующую таблицу. Поэтому я следовал этому example.Ошибка ORA-00942 при предоставлении прав выполнения

При попытке:

grant execute on dbms_redefinition to USER 

Oracle возвращает следующую ошибку:

Error starting at line 13 in command: 
grant execute on dbms_redefinition to USER 
Error report: 
SQL Error: ORA-00942: table or view does not exist 
00942. 00000 - "table or view does not exist" 
*Cause:  
*Action: 

Почему это происходит? Есть ли обходной путь?

+2

С каким пользователем вы вошли в систему? – Aleksej

ответ

2

Во-первых, вам необходимо войти в систему под именем SYSDBA, чтобы предоставить пользователю права на выполнение этого пакета.

Во-вторых, следует помнить, что для dbms_redefinition работы пользователя также необходимы следующие права:

ALTER ANY TABLE 
CREATE ANY TABLE 
DROP ANY TABLE 
LOCK ANY TABLE 
SELECT ANY TABLE 

И, в зависимости от целевой таблицы может также потребоваться:

CREATE ANY INDEX 
CREATE ANY TRIGGER 

Это очень мощные права, предоставляемые пользователю, поэтому вы можете отменить их после выполнения того, что необходимо сделать. Другой хороший пример для использования этого пакета is here

+0

Правда, администратор просто установил это для меня! Спасибо, в любом случае! – royskatt