
        psql 

Сохранение исходного файла
~~~~~~~~~~~~~~~~~~~~~~~~~~


cd /usr/local/pgsql/data 
cp pg_hba.conf pg_hba.conf.default 


Изменение настроек
~~~~~~~~~~~~~~~~~~


bash -c "echo 'local  all  postgres       trust'  > pg_hba.conf" 
bash -c "echo 'host   all  all       all  md5'   >> pg_hba.conf" 



cat pg_hba.conf 
local  all  postgres       trust
host   all  all       all  md5



pg_ctl -w reload 
server signaled


Пользователи
~~~~~~~~~~~~


        => create user enc encrypted password 'enc';
        CREATE ROLE

        => create user unenc unencrypted password 'unenc';
        CREATE ROLE


Подключение под enc
~~~~~~~~~~~~~~~~~~~

Поскольку настройки требуют пароля для enc, мы укажем его явно в строке подключения.
При выполнении этого задания лучше использовать команду
\c - enc localhost
и ввести пароль вручную, чтобы убедиться в том, что он запрашивается.


        => \c "dbname=postgres user=enc host=localhost password=enc"
        You are now connected to database "postgres" as user "enc" on host "localhost" at port "5432".


Попытка получить пароль
~~~~~~~~~~~~~~~~~~~~~~~


        => select rolpassword from pg_authid where rolname='unenc';
        ERROR:  permission denied for relation pg_authid

У пользователя enc нет доступа к этой таблице:

        => \dp pg_catalog.pg_authid
                                           Access privileges
           Schema   |   Name    | Type  |     Access privileges     | Column access privileges 
        ------------+-----------+-------+---------------------------+--------------------------
         pg_catalog | pg_authid | table | postgres=arwdDxt/postgres | 
        (1 row)
        


Получение пароля из-под postgres
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


        => \q

        psql 

        => select rolname, rolpassword from pg_authid where rolname like '%enc';
         rolname |             rolpassword             
        ---------+-------------------------------------
         enc     | md59ad9487992ed433fd63349ea544f41d7
         unenc   | unenc
        (2 rows)
        


Восстанавливаем настройки
~~~~~~~~~~~~~~~~~~~~~~~~~


        => \q

cp pg_hba.conf.default pg_hba.conf 
pg_ctl -w reload 
server signaled
