У меня есть вид, созданный под пользователем «dbaUserA». В запросе запроса используется таблица от другого пользователя «dbaUserB». Оба пользователя - dba.Oracle: не удается запросить представление другой схемы, которая также связала таблицы с другой схемой
имя вида: v_valid_trx с запросом о
Select trx_no,trx_date,order_item
from trx_table a left outer join dbaUserB.cancelled_trx b on a.trx_no=b.trx_no
where b.trx_no is null;
Я создал меньше привилегий пользователя "userC", но с выбора привилегии на
dbaUserA.trx_table
dbaUserB.cancelled_trx.
dbaUserA.v_valid_trx
можно выбрать непосредственно trx_table и canceled_trx из этих разных схем, однако я не могу выбрать на вид v_valid_trx.
Oracle запрашивает
ORA-01031: недостаточные привилегии 01031. 00000 - "недостаточно привилегий" * Причина: Была сделана попытка изменить текущее имя пользователя или пароль без соответствующей привилегии. Эта ошибка также возникает, если пытается установить базу данных без необходимых системных привилегий . Когда Trusted Oracle настроен на СУБД СУБД, эта ошибка может возникнуть , если пользователю была предоставлена необходимая привилегия на более высоком ярлыке , чем текущий логин. * Действие: попросите администратора базы данных выполнить операцию или предоставить требуемые привилегии. Для доверенных пользователей Oracle, получивших эту ошибку, хотя предоставил соответствующие привилегии на более высоком ярлыке, попросите администратор базы данных восстановить права на соответствующую метку. Ошибка на линии: 1 Колонка: 21
Борьба с ними часами. Я не могу понять причину ошибки, когда я могу свободно выбирать базовые таблицы.
пожалуйста, помогите :)
Я бы предположил, что dbaUserB должен «предоставить select on cancelled_trx в dbausera с помощью опции гранта», хотя это немного догадка без полного тестового примера. dbaUserB дал разрешение dbaUserA запрашивать его, а не делиться им с кем-либо еще. –
Также обратите внимание, что доступ к командной строке для базовых таблиц может осуществляться через роль (например, DBA), которая не будет использоваться для базовых таблиц в представлениях. –
Когда я делал гранты для представления, я все время был на консоли как sysdba. Я снова предоставил select в базовой таблице dbauserA с параметром grant. Большое спасибо Уильяму за правильную догадку. :) Не знал, что привилегии оракула работают именно так. – yonas