问题描述
我目前正在尝试使用其他模式 (MYSCHEMA_DML) 刷新模式 MYSCHEMA 的物化视图。当我尝试打电话时
BEGIN DBMS_MVIEW.REFRESH('MYSCHEMA.MV_MYVIEW');END;
我的输出中有以下错误:
ORA-06512: à "SYS.DBMS_SNAPSHOT_KKXRCA",ligne 3020
ORA-06512: à "SYS.DBMS_SNAPSHOT_KKXRCA",ligne 2432
ORA-06512: à "SYS.DBMS_SNAPSHOT_KKXRCA",ligne 88
ORA-06512: à "SYS.DBMS_SNAPSHOT_KKXRCA",ligne 253
ORA-06512: à "SYS.DBMS_SNAPSHOT_KKXRCA",ligne 2413
ORA-06512: à "SYS.DBMS_SNAPSHOT_KKXRCA",ligne 2976
ORA-06512: à "SYS.DBMS_SNAPSHOT_KKXRCA",ligne 3263
ORA-06512: à "SYS.DBMS_SNAPSHOT_KKXRCA",ligne 3295
ORA-06512: à "SYS.DBMS_SNAPSHOT",ligne 16
ORA-06512: à ligne 1
01031. 00000 - "insufficient privileges"
*Cause: An attempt was made to perform a database operation without
the necessary privileges.
*Action: Ask your database administrator or designated security
administrator to grant you the necessary privileges
我的用户对视图具有以下权限:
- 选择
- 改变
- 删除
- 插入
- 更新
显然,这还不够:(我做了一些研究,我发现为了刷新而添加的唯一特权似乎是
GRANT ALTER ANY MATERIALIZED VIEW to MYSCHEMA_DML;
这似乎有点过分了。我是否可以授予我的用户以刷新我的视图的任何其他权限?
解决方法
问题已解决,感谢@MarmiteBomber :
我已经在我的第一个模式 MYSCHEMA 中创建了一个过程
create or replace procedure REFRESH_MV_MYVIEW
as
begin
DBMS_MVIEW.REFRESH('MYSCHEMA.MV_MYVIEW');
end;
然后为 MYSCHEMA2 授予执行权限。
但是。由于物化视图的查询是在另一个模式上进行选择,我必须明确地将 SELECT 授予用户 MYSCHEMA(他只有一个角色的权限)