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

From Egashira, Yusuke
Subject RE: Question about password character in ECPG's connection string
Date
Msg-id 848B1649C8A6274AA527C4472CA11EDD5FC78613@G01JPEXMBYT02
Whole thread Raw
In response to Re: Question about password character in ECPG's connection string  (Luca Ferrari <fluca1978@gmail.com>)
Responses Re: Question about password character in ECPG's connection string
List pgsql-general
> > Perhaps it helps to URL-encode the & in the password as %26?
> 
> The OP already did without success.

Yes, I already get failed with URL-encode the &.

> Could it be needed to escape the & with the backslash or single ticks?

Thanks. I tested with "pass\&word" and "'pass&word'".
However, them also failed...

My tested ways are followings.
- [ECPG] Connection option with plain string :
  EXEC SQL CONNECT "tcp:postgresql://localhost?user=myuser&password=pass&word"
    -> Failed.
- [ECPG] Connection option with percent-encoded string :
  EXEC SQL CONNECT "tcp:postgresql://localhost?user=myuser&password=pass%26word"
    -> Failed.
- [ECPG] Connection option with backslash escaped string :
  EXEC SQL CONNECT "tcp:postgresql://localhost?user=myuser&password=pass\&word"
    -> Failed. (and gcc claims warning)
- [ECPG] Connection option with single-quoted string :
  EXEC SQL CONNECT "tcp:postgresql://localhost?user=myuser&password='pass&word'"
    -> Failed.
- [ECPG] USING or IDENTIFIED BY phrase :
  EXEC SQL CONNECT "tcp:postgresql://localhost" USER "myuser" USING "pass&word"
  EXEC SQL CONNECT "tcp:postgresql://localhost" USER "myuser" IDENTIFIED BY "pass&word"
    -> Success.
- [psql] Connection option with plain string :
  psql "postgresql://localhost?user=myuser&password=pass&word"
    -> Failed.
- [psql] Connection option with percent-encoded string :
  psql "postgresql://localhost?user=myuser&password=pass%26word"
    -> Success.

According to my tests, I think that the ECPG's connection_option seems not to accept '&' character as password
anyhow...
ECPG CONNECT's connection_option seems to have some restricted characters.
I will use "IDENTIFIED BY" phrase to connect the database in my ECPG application.

The database role's password often contains '&' in our environment.
I hope to this limitation will be documented because it causes confusion.

Regards.
--
Yusuke, Egashira


pgsql-general by date:

Previous
From: Erika Knihti-Van Driessche
Date:
Subject: Security patch older releases
Next
From: Luca Ferrari
Date:
Subject: Re: Question about password character in ECPG's connection string