On 07/27/2017 09:45 PM, Jeff Janes wrote:> Here is an updated patch.  This version allows you use the password-less
connection if you either are the super-user directly (which is the existing committed behavior), or if you are using the super-user's mapping because you are querying a super-user-owned view which you have been granted access to.

I have tested the patch and it passes the tests and works, and the code looks good (I have a small nitpick below).

The feature seems useful, especially for people who already use views for security, so the question is if this is a potential footgun. I am leaning towards no since the superuser should be careful when grant access to is views anyway.

It would have been nice if there was a more generic way to handle this since 1) the security issue is not unique to postgres_fdw and 2) this requires you to create a view. But since the patch is simple, an improvement in itself and does not prevent any future further improvements in this era I see no reason to let perfect be the enemy of good.

= Nitpicking/style

I would prefer if

        /* no check required if superuser */
        if (superuser())
                return;

        if (superuser_arg(user->userid))
                return;

was, for consistency with the if clause in connect_pg_server(), written as

        /* no check required if superuser */
        if (superuser() || superuser_arg(user->userid))
                return;

Andreas


--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to