Re: Question about password character in ECPG's connection string - Mailing list pgsql-general

From Adrian Klaver
Subject Re: Question about password character in ECPG's connection string
Date
Msg-id d9b3700d-40bd-1229-2e26-167fafab5c8a@aklaver.com
Whole thread Raw
In response to RE: Question about password character in ECPG's connection string  ("Egashira, Yusuke" <egashira.yusuke@jp.fujitsu.com>)
Responses Re: Question about password character in ECPG's connection string
List pgsql-general
On 8/27/19 6:18 PM, Egashira, Yusuke wrote:
> Hi, Giuseppe,
> 
> Thanks to response to my question!
> 
>> It seems to me that ECPG documentation does not allow specifying
>> username and/or password in the connection string. The correct syntax
>> should be:
>>
>> EXEC SQL CONNECT TO "unix:postgresql://localhost/connectdb" USER
>> "myuser" IDENTIFIED BY "pass&word"
> 
> Yes, I could connect to database with "USER" and "IDENTIFIED BY" phrase in CONNECT statement.
> However, I could also connect to database with password in connection string when my password does not contains '&'
character.
> 
> 1. In database,
>     > CREATE ROLE myuser LOGIN PASSWORD 'password';
> 2. In ECPG application,
>     EXEC SQL CONNECT "tcp:postgresql://localhost?user=myuser&password=password";
>       -> The connection was succeeded.
> 
> This behavior confuse me.

My guess it that what is happening is:

1) Given password: my&pwd

2)  "tcp:postgresql://localhost?user=myuser&password=password" looks like

  "tcp:postgresql://localhost?user=myuser&password=my&pwd"

and password is parsed on the & and you also end up with an extra 
parameter pwd

Have you tried quoting the password?


> 
> If user and password cannot write in connection string, what are parameters allowed in "connection_option" ?
> I hope I can get this information from the ECPG documentation.
> 
> Regards.
> 
> --
> Yusuke, Egashira.
> 


-- 
Adrian Klaver
adrian.klaver@aklaver.com



pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re:
Next
From: Adrian Klaver
Date:
Subject: Re: How to log 'user time' in postgres logs