When you create the view, you rely on one or more underlying objects of that view. These objects can be other tables, views, synonyms, functions, etc. And sometimes, these objects depend on other objects. For instance, the synonym your view is trying to reference points to a view in another schema that uses a table in that schema. You need to make sure that you have the appropriate permissions on the underlying objects of your view, and any objects that those underlying objects depend on. If you do not have permissions on any of these objects, then you will receive the ORA-1031 error.
This was first published in December 2004