> david.g.johns...@gmail.com wrote:
> 
>> b...@yugabyte.com wrote:
>> 
>> However, the design decision that, way back when, leads to this outcome does 
>> surprise me. The principle of least privilege insists that (in the database 
>> regime) you can create users that can do exactly and only what they need to 
>> do. This implies that my "client" should not be able to list all the objects 
>> in the database (and all the users in the cluster).
> 
> If there was any motivation to improve PostgreSQL on this front I'd like them 
> to start with "routine bodies" being hidden away from inspection. I'm much 
> less concerned about pg_class or even knowing the names of things.
> 
> This has been discussed a number of times, probably every few years or so. My 
> quick search failed to find any relevant links/threads in the archives, 
> though I didn't try that hard.

Thanks (again) David. Yes, there is an argument that when app developers know 
that hackers can read every minute detail of their implementation (but, with a 
sound user/schema/privileges discipline cannot change any of this), it cautions 
them to be extra scrupulous. SQL injection is maybe a good example. It's 
probably easier and quicker to scan PL/pgSQL source code looking for obvious 
patterns (like "any use of dynamic SQL?", "If yes, any concatenation of 
literals into the to-be-executed statement?", and so on) than it is to send 
robotically generated values via browser-UI screens in the hope of provoking 
tell-tale errors.

It certainly helps to know that nothing in how PG works in the space that's 
relevant here is going to change in my lifetime.

Reply via email to