Tom, > 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 Josh Berkus PostgreSQL @ Sun San Francisco ---------------------------(end of broadcast)--------------------------- TIP 2: Don't 'kill -9' the postmaster