Какой GRANT выдать схеме, чтобы она могла удалить партицию в другой схеме? ORA-01031

Есть две схемы:

  • my_schema_1
  • my_schema_2

Есть таблица с партициями:

  • my_schema_2.my_table

Я хочу от лица my_schema_1 удалить партиции в my_schema_2.my_table. Сперва выдал права от лица my_schema_2:

grant all on my_table to my_schema_1;

Пытаюсь удалить из-под my_schema_1:

ALTER TABLE my_schema_2.my_table DROP PARTITION SYS_P00001 UPDATE GLOBAL INDEXES;

Возвращает ошибку:

ORA-01031: привилегий недостаточно

Каких привилегий недостаточно? Я вроде бы выдал ALL на эту таблицу.


Ответы (1 шт):

Автор решения: 0xdb

Насчёт, каких привелегий недостаточно, в гл. ALTER TABLE сказано следующее:

Additional Prerequisites for Partitioning Operations

If you are not the owner of the table, then you need the DROP ANY TABLE privilege in order to use the drop_table_partition or truncate_table_partition clause.

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

Если что, то так:

grant drop any table to my_schema_1;
→ Ссылка