【发布时间】:2017-01-26 14:15:33
【问题描述】:
作为User1我有桌子:
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 权限
GRANT REFERENCES ON USER1.TEST TO USER2;
然后我得到:
PLS-00904: insufficient privilege to access object USER1.TEST
如果我授予 SELECT 权限,那么它将编译 - 但是,User2 然后可以在表上执行选择,我不希望他们直接执行此操作。是否可以使用特权来引用列的类型,而无需同时授予表中SELECT 的能力?
【问题讨论】:
-
我认为这是不可能的。您必须使用
in_id number作为参数定义。