Как войти в PostgreSQL с другим именем пользователя, чем «postgres», и как зашифровать определенные столбцы? - PullRequest
0 голосов
/ 15 мая 2019

Я абсолютно новичок в PostgreSQL. У меня есть следующие сомнения:

  1. Я могу войти в postgresql, используя

    sudo -u postgres psql postgres
    

    Я создал test_db базу данных и внутри нее таблицу с именем test_tbl. Я также создал пользователя test и дал ему следующие привилегии:

    GRANT CONNECT ON DATABASE test_db TO test;
    GRANT SELECT, INSERT, UPDATE, DELETE ON test_tbl TO test;
    

    Как войти в базу данных test_db как пользователь test? Я могу войти только как postgres. Если я пытаюсь войти в систему как test, я получаю следующую ошибку-

        ubuntu@ip-10-81-1-44:~$ psql -U test -d test_db
        psql: FATAL:  Peer authentication failed for user "test"
  1. Как я могу зашифровать определенный столбец в таблице test_tbl, только для пользователя test и никакого другого пользователя?

Ответы [ 2 ]

0 голосов
/ 15 мая 2019
  1. Вам нужно будет создать запись в pg_hba.conf, которая позволит пользователю войти в базу данных.Не забудьте перезагрузить PostgreSQL.

    Читать документацию об аутентификации клиента для получения дополнительной информации.

  2. Для шифрования столбца необходим код приложенияэто делает шифрование и дешифрование.

    Возможно, вы можете получить то, что вы хотите с привилегиями столбцов:

    GRANT SELECT ON test_tbl TO test;
    GRANT SELECT (col1, col2, ...) ON test_tbl TO PUBLIC;
    

    Здесь вы видите все столбцы, кроме того, который вы хотите скрыть.Тогда только пользователь test может SELECT этот столбец.

    Альтернативой является ограничение SELECT только на test и предоставление другим представлениям, отображающим все, кроме скрытых столбцов.

0 голосов
/ 15 мая 2019

От вас не требуется sudo сменить пользователя, вы можете указать, что при подключении, используя флаг -U, например:

psql -U test -d test_db

.подключите вас к базе данных test_db как пользователь test, и, если вам потребуется пароль, вам будет предложено указать другие флаги, такие как хост, порт и т. д.

https://www.postgresql.org/docs/current/app-psql.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...