index 3ac555dad37583258eeac46103a04f01a333d600..22e17bb5e6917dbeaaf3931454905a1ddb7b2c20 100644 (file)
<title><literal>schemata</literal></title>
<para>
- The view <literal>schemata</literal> contains all schemas in the
- current database that are owned by a currently enabled role.
+ The view <literal>schemata</literal> contains all schemas in the current
+ database that the current user has access to (by way of being the owner or
+ having some privilege).
</para>
<table>
index 95f267f224ece107735de7e2aa865ea8464b693b..c5f7a8b21008b422b9ec47a0dbe9389dfb6a6bdd 100644 (file)
CAST(null AS sql_identifier) AS default_character_set_name,
CAST(null AS character_data) AS sql_path
FROM pg_namespace n, pg_authid u
- WHERE n.nspowner = u.oid AND pg_has_role(n.nspowner, 'USAGE');
+ WHERE n.nspowner = u.oid
+ AND (pg_has_role(n.nspowner, 'USAGE')
+ OR has_schema_privilege(n.oid, 'CREATE, USAGE'));
GRANT SELECT ON schemata TO PUBLIC;