powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Из Пакета не видит таблицу в другой схеме с выданными правами.
5 сообщений из 5, страница 1 из 1
Из Пакета не видит таблицу в другой схеме с выданными правами.
    #40069965
dismay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
В схеме s1 создали grant на s2 (через роль на чужой объект есть привилегия на select)
Из схемы s1 -> Select * from s2.t1 выполняется нормально, но если создать пакет в схеме s1 и в нем написать Select * from s2.t1, то говорит что не видит таблицу или представление(ORA-00942 table or view does not exist).

На одном из форумов нашел ответ на похожую ситуацию:
Нужен грант на "grant references",
но почему в чем смысл, ведь references относится к (REFERENCES Возможность создавать CONSTRAINT, который ссылается на таблицу.)
или в чем-то другом проблема может быть?
...
Рейтинг: 0 / 0
Из Пакета не видит таблицу в другой схеме с выданными правами.
    #40069967
SQL*Plus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dismay
Добрый день.
В схеме s1 создали grant на s2 (через роль на чужой объект есть привилегия на select)
Из схемы s1 -> Select * from s2.t1 выполняется нормально,
но если создать пакет в схеме s1 и в нем написать Select * from s2.t1,
то говорит что не видит таблицу или представление(ORA-00942 table or view does not exist).

Нужно дать грант непосредственно пользователю S1.
Не через роль.
Код: plaintext
GRANT SELECT ON S2.t1 TO S1;
...
Рейтинг: 0 / 0
Из Пакета не видит таблицу в другой схеме с выданными правами.
    #40070033
dismay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нашел ответ тут:
https://coderoad.ru/4198052/oracle-table-or-view-does-not-exist-изнутри-хранимой-процедуры

CREATE OR REPLACE PROCEDURE PRC_SOMESP
AUTHID CURRENT_USER
AS
l_cnt pls_integer;
BEGIN
EXECUTE IMMEDIATE 'SELECT COUNT(*) FROM yyy.TableA' INTO l_cnt;
END PRC_SOMESP;

А именно AUTHID CURRENT_USER + Динамику.
...
Рейтинг: 0 / 0
Из Пакета не видит таблицу в другой схеме с выданными правами.
    #40070493
проходил мимо...
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а вы попытались почитать (в документации, например), что значит

dismay
AUTHID CURRENT_USER

и к чему приведёт вызов этой процедуры каким-нибудь другим пользователем?

ЗЫ даже если прочитали - не делайте так. проклянут.
...
Рейтинг: 0 / 0
Из Пакета не видит таблицу в другой схеме с выданными правами.
    #40071026
dismay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Каюсь, но человеку нужно был просто select into внутри процедуры в табличку его схемы, а из-за того что была выдана роль, привилегии на PL\SQL блоки не распространяются при этом, поэтому в процедуре не получалось сделать select из таблицы в другой схеме, ну понятно что в чистом sql получалось. Процедуру будет выполнять только один человек, ему для теста.
https://oracle-patches.com/db/sql/3980-modeli-razresheniy-prav-oracle-i-programmirovanie-na-pl-sql
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Из Пакета не видит таблицу в другой схеме с выданными правами.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]