Обсуждение: PQconnectdbParams and encrypted password
Hi
I need some help with setting PQconnectdbParams key/value for encrypted password
suppose I created user with the string
create user foobar with encrypted password ‘md5f3c33545d22dbf811737afb8d0e85597’
I was able to connect successfully using
psql -U foobar
I guess my pg_hba.conf is OK:
local all foobar md5
host all foobar 127.0.0.1/32 md5
host all foobar 0.0.0.0/0 md5
however
I have a problem to connect to the server from my C++ program using PQconnectdbParams function
const std::pair<std::string, std::string> connParams[] = {
{"host", “localhost"},
{"port", ""},
{"user", “foobar"},
{"password", ??????????????},//I’d like to have here “md5f3c33545d22dbf811737afb8d0e85597”, but it
doesn’twork
{"options","password_encryption='md5'"},
{"dbname", "test_db"},
{"connect_timeout", “10"}
};
const char* keywords[] = {connParams[0].first.c_str(),
connParams[1].first.c_str(),
connParams[2].first.c_str(),
connParams[3].first.c_str(),
connParams[4].first.c_str(),
connParams[5].first.c_str(),
connParams[6].first.c_str(),
nullptr};
const char* connValues[] = {connParams[0].second.c_str(),
connParams[1].second.c_str(),
connParams[2].second.c_str(),
connParams[3].second.c_str(),
connParams[4].second.c_str(),
connParams[5].second.c_str(),
connParams[6].second.c_str(),
nullptr};
auto db = PQconnectdbParams(keywords, connValues)
whatever I tried ConnStatusType of the db is CONNECTION_BAD
if I use value as “open” string for the key=“password”, then connection was successful
thanks in advance
dm
Dmitry Markman <dmarkman@mac.com> writes:
> I need some help with setting PQconnectdbParams key/value for encrypted password
> suppose I created user with the string
> create user foobar with encrypted password ‘md5f3c33545d22dbf811737afb8d0e85597’
> ...
> {"password", ??????????????},//I’d like to have here “md5f3c33545d22dbf811737afb8d0e85597”, but it
doesn’twork
Pretty much the entire *point* of an encrypted password is that the
md5 hash is not sufficient to log in with. You need the original
string.
regards, tom lane
Hi Tom
thanks a lot for your answer
I realized it almost immediately after I press the button send :)
thanks again
dm
> On Aug 30, 2019, at 9:50 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>
> Dmitry Markman <dmarkman@mac.com> writes:
>> I need some help with setting PQconnectdbParams key/value for encrypted password
>> suppose I created user with the string
>> create user foobar with encrypted password ‘md5f3c33545d22dbf811737afb8d0e85597’
>> ...
>> {"password", ??????????????},//I’d like to have here “md5f3c33545d22dbf811737afb8d0e85597”, but it
doesn’twork
>
> Pretty much the entire *point* of an encrypted password is that the
> md5 hash is not sufficient to log in with. You need the original
> string.
>
> regards, tom lane