Thread: permission denied for tablespace pg_global?

permission denied for tablespace pg_global?

From
"Hiroshi Saito"
Date:
Hi.

I'm looking at the strange phenomenon....
--
C:\Program Files\PostgreSQL\8.3-beta1\bin>psql postgres postgres
Password for user postgres:
Welcome to psql 8.3beta1, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms      \h for help with SQL commands      \? for help with psql commands      \g
orterminate with semicolon to execute query      \q to quit
 

postgres=# select *,oid from pg_catalog.pg_tablespace; spcname   | spcowner | spclocation | spcacl | oid
------------+----------+-------------+--------+------pg_default |       10 |             |        | 1663pg_global  |
  10 |             |        | 1664
 
(2 rows)

postgres=# SELECT pg_size_pretty(pg_tablespace_size(1663));pg_size_pretty
----------------13 MB
(1 row)

postgres=# SELECT pg_size_pretty(pg_tablespace_size(1664));
ERROR:  permission denied for tablespace pg_global
postgres=#

/END

Have I overlooked the present specification change?
or can someone suggest?

Regards,
Hiroshi Saito


Re: permission denied for tablespace pg_global?

From
Tom Lane
Date:
"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


Re: permission denied for tablespace pg_global?

From
"Hiroshi Saito"
Date:
----- Original Message ----- 
From: "Tom Lane" <tgl@sss.pgh.pa.us>
To: "Hiroshi Saito" <z-saito@guitar.ocn.ne.jp>
Cc: <pgsql-hackers@postgresql.org>
Sent: Wednesday, October 10, 2007 9:55 PM
Subject: Re: [HACKERS] permission denied for tablespace pg_global? 


> "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 on the tablespace (which is not
>  granted by default), except when the tablespace is the default
>  tablespace for the current database (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


Re: permission denied for tablespace pg_global?

From
"Hiroshi Saito"
Date:
Hi.

Oops, I pursued the thread and was not competent.
I will inquire thoroughly. Thanks!!

Regards,
Hiroshi Saito

----- Original Message ----- 
From: "Tom Lane" <tgl@sss.pgh.pa.us>


> "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 on the tablespace (which is not
>  granted by default), except when the tablespace is the default
>  tablespace for the current database (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