Originally posted by nealh
One option might be to create a stored procedure under the user who owns the materialized views. In the procedure, you could refresh the views using dbms_mview.refresh(). The user then just calls this procedure.

If the procedure is created with definer rather than invoker rights (the default), then it should be executed under the privileges of the procedure owner rather than the user invoking it.

Hi,

You can grant the system privilege ALTER ANY SNAPSHOT to that user who will refresh the view. But be care, thats a power privilege which your DBA don't like.