> Another idea is to not hardwire any restriction into the C code, but
> instead have initdb revoke the default public execute access on the
> tablespace size function.  It would still work for superusers, and
> a particular DBA could choose to grant execute to trustworthy people.
> The problem is that you'd have to repeat the grant over and over
> (in particular, pg_dump wouldn't save its effects).

Yeah, the big issue here is that Tablespaces do not have any kind of "read" 
permission, so there's nothing for us to go by.  There's a good reason for 
them not to, since they're orthagonal to schema and databases, but it 
leaves us without a "handle" for tablespace size.

On the other hand, how useful is the information that a tablespace is 35GB 
in size and that includes 16GB of stuff you're not allowed to see?  Are we 
hypothesizing that some attacker would not have CONNECT on a DB, but would 
know exactly which tables that DB stores on which tablespace?  This seems 
very corner-case.


Josh Berkus
PostgreSQL @ Sun
San Francisco

---------------------------(end of broadcast)---------------------------
TIP 2: Don't 'kill -9' the postmaster

Reply via email to