Практическое задание

Эта задача — шаг 7 курса «Базы данных за вечер: SQLite, PostgreSQL, Redis»

Читатель для базы library

средне~7 мин

В базу library будет ходить приложение-витрина. Создай для него роль reader, которая может входить (LOGIN) по паролю pages42, и выдай ей право подключаться к базе library (CONNECT) — у всех остальных это право в этой базе отобрано.

Что потренируешь:
  • postgresql
  • create role
  • login
  • пароль
  • grant connect

Разбор темы

В PostgreSQL пользователи и группы — одна сущность, роль. Роль с атрибутом LOGIN может подключаться, без него — служит группой для раздачи прав. Пароль — атрибут роли, проверяемый при входе по сети (-h 127.0.0.1), но сам по себе он ничего не открывает: доступ к каждой базе — отдельная привилегия CONNECT, которую по умолчанию имеет псевдороль PUBLIC, а осторожные админы её отбирают и выдают явно через GRANT. Итого для входа нужны три независимые вещи: роль, право входа с паролем и право на конкретную базу.

Что проверяется

  1. роль reader может входить
  2. у reader есть CONNECT на library
  3. reader входит в library с паролем pages42

Как это выглядит