Какой GRANT выдать схеме, чтобы она могла удалить партицию в другой схеме? ORA-01031
Есть две схемы:
my_schema_1my_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 шт):
Насчёт, каких привелегий недостаточно, в гл. 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;