Same user cannot 'see' view on remote oracle database athough dblink is valid
Do not quote schema or object names in your SQL. If forces case-sensitivity in the names where none exists by default in Oracle. i.e. TABLE_NAME is the same as table_name, but &quot;TABLE_NAME&quot; is not the same as table_name. Even if you were going to quote the object names to enforce case-sensitivity, you should use double-quotes and not single quotes.
Also, be careful what you're granting: &quot;GRANT ALL&quot; is not appropriate if all the user needs to do is select data.
     SELECT 'GRANT ALL ON &quot;'||owner||'&quot;.&quot;'||object_name||'&quot; TO &lt;DB_LINK_NAME&gt;' grantSQL
       FROM all_objects
      WHERE owner = 'OWNER_NAME'
        AND object_type = 'VIEW'
        AND object_type IN
            (
              select view_name
              from sys.dba_views
              where owner = 'OWNER_NAME'
            )
   ORDER BY object_type, object_name

produces a SQL statement like this:
GRANT ALL ON 'owner'.'object_name' TO DB_LINK_USER_NAME

When what you most likely want is this:
GRANT SELECT ON owner.object_name TO DB_LINK_USER_NAME

Your query also seems a little convoluted. DBA_VIEWS gives you everything you need, so why join with ALL_OBJECTS which may not contain the matching view names? The order of the grants are made is also not important, so why include an ORDER BY clause that will force extra I/O to sort the results in the TEMP tablespace?
Try this:
     SELECT 'GRANT SELECT ON &quot;||owner||&quot;.&quot;||object_name||&quot; TO &lt;DB_LINK_USER_NAME&gt;' grantSQL
       FROM dba_views
      WHERE owner = 'OWNER_NAME'