La información de information_schema.schemata depende del rol con el que esté conectado, por lo que no es realmente la vista correcta para consultar para descubrir esquemas en general.
El doc en information_schema.schemata en 9.3
dice:
Sin embargo, no está del todo claro (al menos para mí) solo con esa oración, por qué no puede ver public .
En una publicación de la lista de correo, Tom Lane tiene una explicación que va un poco más allá:
Ver https://www.postgresql.org/message-id/example@sqldat.com
Su conclusión:
que se ve exactamente como el problema en esta pregunta.
En pocas palabras:use pg_namespace en lugar de information_schema.schemata
Esto se modificó en la versión 9.4 para ajustarse a lo que esperan los usuarios. El documento actual dice:
USAGE El privilegio en un esquema ahora es suficiente para obtenerlo desde esta vista.