Oracle: таблица или представление не существует - PullRequest
0 голосов
/ 09 апреля 2019

Я пытаюсь создать представление в Oracle с помощью Toad и получить таблицу ошибок или представление не существует.

Но когда я запускаю запрос самостоятельно, он успешно выполняется.Какова возможная причина?

CREATE OR REPLACE FORCE VIEW MGR.V_INDEX_PERFORMANCE
(
          INDEX_ID ,
          INDEX_NAME,
          MTD,
          YTD 
)
   BEQUEATH DEFINER
AS

SELECT    "INDEX_ID" ,
          "INDEX_NAME",
          "MTD",
          "YTD" from MIS_PERMAL.MV_INDEX_PERFORMANCE 
   where INDEX_ID in (1045, 2005) AND FIELD_CODE = 'TR' AND CCY_CODE IN ('D', 'USD') order by INDEX_ID, price_date desc;

1 Ответ

3 голосов
/ 09 апреля 2019

Это разрешения, точнее то, как они предоставляются.Пользователь MGR имеет право запрашивать базовую таблицу из роли.Oracle не позволяет нам создавать представления или процедуры, используя привилегии из роли.Именно так работает модель безопасности.

Решение состоит в том, чтобы попросить владельца таблицы MIS_PERMAL (или опытного пользователя, такого как администратор БД) предоставить привилегию SELECT для MV_INDEX_PERFORMAMCE непосредственно MGR.

...