Обсуждение: PQconnectdbParams and encrypted password

Поиск
Список
Период
Сортировка

PQconnectdbParams and encrypted password

От
Dmitry Markman
Дата:
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









Re: PQconnectdbParams and encrypted password

От
Tom Lane
Дата:
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



Re: PQconnectdbParams and encrypted password

От
Dmitry Markman
Дата:
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