PostgreSQL read only user
We have around 500 schemas, so granting permission to each schema is difficult.


No.  It's tedious to do by hand, but it's also a prime candidate for automation, through scripting. 


  ... dynamically created or dropped on a daily basis, so giving permission at each time a schema is created is also a difficult task. 


I disagree.  You're doing all the "difficult" stuff every day - dropping, recreating and repopulating all these schemas.  I would suggest that adding this single statement to the end of that process is relatively trivial! 


  Is there any way to give the read-only permission for a whole database instead of schema? 


Even if there is, you should not do so. 

It sounds to me like these schemas are discrete entities (otherwise why not combine them into one?).  Granting access across all of them strikes me as a Bad Idea.