On Tue, Mar 14, 2017 at 3:15 AM, Heikki Linnakangas <hlinn...@iki.fi> wrote:
> On 03/14/2017 04:47 AM, Tom Lane wrote: > >> Robert Haas <robertmh...@gmail.com> writes: >> >>> I'm not talking about changing the default, just having it be possible >>> to use \password with the new system as it was with the old, whatever >>> exactly we think that means. >>> >> >> Seems to me the intended behavior of \password is to use the best >> available practice. So my guess is that it ought to use SCRAM when >> talking to a >= 10.0 server. What the previous password was ought >> to be irrelevant, even if it could find that out which it shouldn't >> be able to IMO. >> > > If the server isn't set up to do SCRAM authentication, i.e. there are no > "scram" entries in pg_hba.conf, The method is not part of the pg_hba matching algorithm, so either the first match is scram, or it isn't. There is no fallback to later entries, as I understand it. > and you set yourself a SCRAM verifier, you have just locked yourself out > of the system. I think that's a non-starter. There needs to be some more > intelligence in the decision. > Right. And you can lock yourself out of the system going the other way, as well, setting a md5 password when scram is in pg_hba. Which is how I ended up starting this thread. > > It would be a lot more sensible, if there was a way to specify in > pg_hba.conf, "scram-or-md5". We punted on that for PostgreSQL 10, but > perhaps we should try to cram that in, after all. So the backend for the incipient connection would consult the catalog pg_authid before responding back to the client with an authentication method, as opposed to merely pulling it out of pg_hba? Cheers, Jeff