Недостаточно прав при обновлении
У меня недостаточно прав при обновлении таблицы в схеме B. Владельцем таблицы является схема A, но я дал разрешение на обновление для схемы B, даже тогда она выдает ошибку. Если я даю грант Select вместе с обновлением, он работает. Почему мне нужно дать выбрать грант вместе с обновлением, если я просто хочу обновить таблицу. Я использую Exadata в качестве моей серверной версии
1 ответ
Обновление работает, без необходимости предоставления выбранной провинции, как показано ниже. Я использовал Oracle для этого теста.
SQL> создать пользователя test1, идентифицированного профилем test1 по умолчанию;
Пользователь создан.
SQL> Предоставить подключение, ресурс для test1;
Грант удался.
SQL> создать пользователя test2, идентифицированного профилем test2 по умолчанию;
Пользователь создан.
SQL> Предоставить подключение, ресурс для test2;
Грант удался.
SQL> connect test1 / test1 Connected. SQL> создать таблицу abc (имя varchar2(20));
Таблица создана.
SQL> вставить в значения test1.abc ('xyz');
1 ряд создан.
SQL> commit 2;
Фиксация завершена.
SQL> select * from test1.abc 2;
НАЗВАНИЕ
хуг
SQL> предоставить обновление test1.abc для test2;
Грант удался.
SQL> connect test2 / test2 Подключено.
SQL> update test1.abc set name = 'XXYYZZ';
1 строка обновлена.
SQL> commit 2;
Фиксация завершена.
SQL> connect test1 / test1 Connected. SQL> select * from abc;
НАЗВАНИЕ
XXYYZZ