2017-03-13 16:57 GMT+01:00 Adrian Klaver <adrian.kla...@aklaver.com>:

> On 03/13/2017 08:44 AM, Guillaume Lelarge wrote:
>
>> 2017-03-13 16:29 GMT+01:00 Schmid Andreas <andreas.sch...@bd.so.ch
>> <mailto:andreas.sch...@bd.so.ch>>:
>>
>>     Hi
>>
>>     I'm trying to add a new DB user with the following command from my
>>     client machine:
>>     createuser -h my.host.name <http://my.host.name> -U mysuperusername
>>     --pwprompt newusername
>>
>>     I'm getting the following message:
>>     createuser: could not connect to database postgres: FATAL:  no
>>     pg_hba.conf entry for host "10.0.0.1", user "mysuperusername",
>>     database "postgres", SSL on
>>
>>     Now, it's true that our pg_hba.conf doesn't allow access to the
>>     postgres database. We did this intentionally, as usually no one
>>     needs to connect to this database.
>>
>>     So I tried to do
>>     export PGDATABASE=sogis
>>     before the createuser command. But no success. Does anyone know of
>>     another way to achieve what I'm trying?
>>
>>     I whish to do it with createuser rather than with the SQL command
>>     CREATE USER because this way I can avoid the password for the new
>>     user to show up anywhere in the history.
>>
>>     I'm on 9.2 on Ubuntu 14.04.
>>
>>
>> You can't. The createuser.c code specifically targets the "postgres"
>> database, which surprises me. Anyway, the only other way to do it is to
>> use psql, something like: psql -c "CREATE USER..." -h ... your_database
>>
>
> Unfortunately that stills leaves the password in the Postgres log which is
> what the OP is trying to avoid. The immediate solution would be to open the
> postgres database in pg_hba.conf. A longer term solution would be to file
> an issue and see if the code can be changed to allow specifying a database
> to createuser.
>
>
It's not very hard to do. But I really wonder why it's not already done. I
fear there was a good idea, but I fail to see which one :)


-- 
Guillaume.
  http://blog.guillaume.lelarge.info
  http://www.dalibo.com

Reply via email to