Спасибо за обновление! Я считаю, что это проблема с разрешениями.
В OKDB я создал вид и могу его открыть. выбрать из
PRODDB.employee;
Но в TESTDB не открывается.
Итак, в этом примере три пользователя: 1. PRODDB
, 2. OKDB
и 3. TESTDB
.
Представление называется Employee
и было создано по схеме PRODDB
; PRODDB.EMPLOYEE
.
Если OKDB
может запросить PRODDB.EMPLOYEE
, одна из двух вещей должна быть истинной. Либо: 1. OKDB
были предоставлены привилегии для PRODDB.EMPLOYEE
напрямую (например, grant select on PRODDB.EMPLOYEE to OKDB;
), или 2. OKDB
имеет повышенные привилегии благодаря роли, которая позволяет пользователю запрашивать это представление (например, grant DBA to OKDB
, что позволит OKDB
запрашивать любую таблицу в базе данных.)
Если TESTDB
не может запросить представление, я бы поспорил, что необходимые привилегии не были предоставлены пользователю. Чтобы исправить это, я бы порекомендовал проверить привилегии и роли, которые были предоставлены пользователю OKDB
, а затем предоставить те же привилегии для TESTDB
. Если это связано с работой, вам, возможно, придется работать с другим администратором базы данных, если у вас нет разрешения на выдачу грантов.