"Hiroshi Saito" <z-saito@guitar.ocn.ne.jp> writes:
> postgres=# SELECT pg_size_pretty(pg_tablespace_size(1664));
> ERROR: permission denied for tablespace pg_global
This is an intentional change, documented in the release notes:
* Put some security restrictions on the dbsize functions (Tom)
Restrict pg_database_size() to users who can connect to the target database (note that CONNECT privilege is granted by
default,so this does not change the default behavior). Restrict pg_tablespace_size() to users who have CREATE privilege
onthe tablespace (which is not granted by default), except when the tablespace is the default tablespace for the
currentdatabase (since we treat that as implicitly allowing use of the tablespace).
There was a long thread about this in -hackers two months ago:
http://archives.postgresql.org/pgsql-hackers/2007-08/msg00948.php
regards, tom lane