В User1
У меня есть таблица:Какие GRANT привилегии должны использовать% TYPE в объявлении переменной
CREATE TABLE USER1.test (id NUMBER);
Как User2
у меня есть процедура:
CREATE PROCEDURE USER2.passInATestId(
in_id USER1.TEST.ID%TYPE
)
IS
BEGIN
NULL;
END;
/
Однако, это не может скомпилировать с :
PLS-00201: identifier 'USER1.TEST' must be declared
Если я предоставить REFERENCES
р ermissions
GRANT REFERENCES ON USER1.TEST TO USER2;
Тогда я получаю:
PLS-00904: insufficient privilege to access object USER1.TEST
Если я предоставить SELECT
привилегию, то он будет компилировать - однако, User2
может выполнить выбирает на столе, и я не хочу, чтобы сделать это непосредственно , Есть ли привилегия, которую я могу использовать, что позволяет мне ссылаться на тип столбца, не предоставляя также возможность SELECT
из таблицы?
Я не думаю, что это возможно. Вы должны использовать 'in_id number' как определение параметра. –