db中有两个模式,我创建一个物化视图 - 'MV1'并成功授予它,在其他模式中从中选择是正常的。
GRANT select ON schemaA.MV_CA_REVENU_MS_GEO TO read;
/
GRANT select ON schemaA.MV_CA_REVENU_MS_GEO TO write;
/
GRANT update ON schemaA.MV_CA_REVENU_MS_GEO TO write;
/
但是在编译过程时,会出现“MV1”的错误消息“表或视图不存在”。程序代码是:
create or replace
PROCEDURE SP_NAME (args ... ) is
.
.
begin
INSERT INTO tableName(
.
.
) SELECT ...
FROM (SELECT ...
FROM MV1 -- **schemaA.MV1 doesn't work either**
WHERE
end SP_NAME;
/
GRANT EXECUTE ON schemaB.SP_NAME TO read;
GRANT DEBUG ON schemaB.SP_NAME TO read;
GRANT EXECUTE ON schemaB.SP_NAME TO write;
GRANT DEBUG ON schemaB.SP_NAME TO write;
/
CREATE or replace PUBLIC SYNONYM SP_NAME FOR schemaB.SP_NAME;
/
我尝试在MV1前添加schemaA,它不起作用。我应该检查一下其他步骤吗?
答案 0 :(得分:0)
是“读”和“写”架构名称还是角色名称?在编译存储过程,函数和包时,Oracle无法通过角色间接授予的权限