Перейти к содержимому

00 Занятие 00: PostgreSQL 16 / Основы безопасности

Исходная страница в нативном Markdown: PostgreSQL 16 / Основы безопасности
Примечание

Эта страница извлечена из официального PDF в нативный Markdown. Текст слайдов, код и комментарии сохранены в порядке чтения; исходные PDF и HTML остаются эталоном макета. HTML source: dbs_00_introduction.html Archive: DBS-handouts-16.zip Страниц PDF: 9

Page 1: PostgreSQL 16 / Основы безопасности

Авторские права

© Postgres Professional, 2017–2026 Авторы: Егор Рогов, Павел Лузанов, Илья Баштанов, Алексей Береснев Фото: Олег Бартунов (монастырь Пху и пик Бхрикути, Непал)

Использование материалов курса

Некоммерческое использование материалов курса (презентации, демонстрации) разрешается без ограничений. Коммерческое использование возможно только с письменного разрешения компании Postgres Professional. Запрещается внесение изменений в материалы курса.

Обратная связь

Отзывы, замечания и предложения направляйте по адресу: edu@postgrespro.ru

Отказ от ответственности

Компания Postgres Professional не несет никакой ответственности за любые повреждения и убытки, включая потерю дохода, нанесенные прямым или непрямым, специальным или случайным использованием материалов курса. Компания Postgres Professional не предоставляет каких-либо гарантий на материалы курса. Материалы курса предоставляются на основе принципа «как есть» и компания Postgres Professional не обязана предоставлять сопровождение, поддержку, обновления, расширения и изменения.

Page 2: Администраторам

Source slide page 2: Администраторам{#source-figure-002 caption=“Source slide page 2: Администраторам”}

  • DBA2, 4 дня

Комментарии преподавателя

Для прохождения всех курсов необходимы предварительные знания основ языка SQL. Специального курса по языку SQL в нашей линейке курсов нет, но существует множество книг и других образовательных ресурсов, с помощью которых можно освоить SQL. Мы рекомендуем книгу Евгения Моргунова «PostgreSQL. Основы языка SQL»:

https://postgrespro.ru/education/books/sqlprimer

Для администраторов мы предлагаем следующие курсы.

Курс DBA1 является базовым, он содержит сведения об архитектуре PostgreSQL, процессе установки, настройке и управлению сервером. Рассматриваются основные задачи администрирования, приводится обзор разграничения доступа, резервного копирования и репликации.

В курсе DBA2 обсуждается настройка конфигурационных параметров исходя из понимания внутренней организации сервера; говорится о мониторинге сервера с использованием обратной связи для итеративной настройки параметров.

Курс DBA3 посвящен рассмотрению резервного копирования, а также настройкам физической и логической репликации и сценариям ее использования. Также дается общее представление о способах и сложностях построения высокодоступных, масштабируемых кластеров.

В курсе QPT детально разбираются механизмы планирования и выполнения запросов, рассматривается настройка параметров экземпляра, связанных с производительностью, и изучаются возможности для поиска проблемных запросов и их оптимизации.

В курсе PGPRO рассматриваются дополнительные возможности, которые предоставляет СУБД Postgres Pro Enterprise.

Page 3: Разработчикам

Source slide page 3: Разработчикам{#source-figure-003 caption=“Source slide page 3: Разработчикам”}

  • DEV2, 4 дня

Комментарии преподавателя

Для разработчиков серверной части приложений мы предлагаем следующие курсы.

Базовым курсом для разработчиков является курс DEV1, в котором даются общие сведения об архитектуре PostgreSQL и использовании основных объектов базы данных; изучается программирование на стороне сервера на языках SQL и PL/pgSQL с использованием основных типов данных (включая составной тип и массивы), а также рассматривается взаимодействие с клиентской частью.

В курсе DEV2 рассматриваются особенности внутреннего устройства сервера, влияющие на разработку прикладного кода, и всесторонне изучается расширяемость: возможность дополнить серверные механизмы собственным кодом, что позволяет использовать PostgreSQL для решения самых разнообразных задач.

Курсы DBS, QPT и PGPRO являются общими для разработчиков и администраторов.

Разработчикам могут быть интересны и курсы по администрированию, если есть необходимость детальнее изучить внутреннее устройство PostgreSQL, а также в случае, когда на проекте нет выделенной роли администратора.

https://postgrespro.ru/education/courses

Page 4: О курсе DBS

Продолжительность: 2 дня

  • Предварительные знания
    • знание SQL
    • знакомство с Unix
    • PostgreSQL в объеме курса DBA1 или DEV1
  • Какие навыки будут получены
    • управление доступом к объектам на основе ролевой модели
    • разграничение доступа на уровне строк
    • настройка подключения и аутентификации

Комментарии преподавателя

Курс «Основы безопасности PostgreSQL» рассказывает про конфигурирование подключений клиентов к СУБД и про управление доступом внутри самой СУБД. Этот курс предназначен в первую очередь для администраторов, поскольку рассматривает вопросы настройки экземпляра. Но может быть интересен и разработчикам, позволяя взглянуть с другой стороны — в контексте безопасности — на использование ролей и распределение данных по схемам и таблицам.

Page 5: Используемые материалы

Подготовленная виртуальная машина

  • ОС Xubuntu 24.04
  • PostgreSQL 16
  • документация на русском языке
  • Учебные материалы
    • презентации, демонстрации, практические задания и их решение
    • (в форматах html и pdf)
    • справочный материал — команды создания сертификатов OpenSSL,
    • используемых в курсе

Комментарии преподавателя

Если вы проходите курс самостоятельно, обязательно начните со знакомства с Руководством слушателя. В числе прочего в нем написано, где скачать и как использовать виртуальную машину курса и прочие материалы. Все материалы курса, включая Руководство слушателя, доступны по адресу: https://postgrespro.ru/education/courses/DBS

Выполнение практических заданий очень важно для получения навыков работы с PostgreSQL. Обязательно старайтесь сначала самостоятельно выполнить задания, а затем просмотрите предлагаемые нами решения, даже если задание не вызвало вопросов. В решениях могут содержаться дополнительные сведения, которые не упоминаются в презентациях и демонстрациях.

Учебные материалы (презентации, демонстрации, практические задания и их решения) доступны в двух форматах. Формат html удобен для онлайн-работы, он позволяет копировать фрагменты текста и кода. Формат pdf разбит на страницы и удобен для печати на бумаге.

Справочный материал может быть полезен для самостоятельной настройки дополнительных SSL-соединений.

Page 6: Виртуальная машина

Имя хоста виртуальной машины:

student$ host $(hostname)
course.local has address 127.0.1.1

Адрес 127.0.1.1 привязан к доменному имени хоста и используется в демонстрациях и практических заданиях курса. Адреса 127.0.0.1 (localhost) и 127.0.1.1 (course.local) связаны с закольцовывающим интерфейсом, но соответствуют разным именам хостов. В виртуальной машине курса инициализирован стандартный кластер main:

student$ pg_lsclusters
Ver Cluster Port Status Owner    Data directory              Log file
16  main    5432 online postgres /var/lib/postgresql/16/main
/var/log/postgresql/postgresql-16-main.log

В конфигурационные файлы pg_hba.conf и pg_ident.conf добавлены директивы include_dir, чтобы можно было менять настройки, добавляя и удаляя дополнительные конфигурационные файлы в подкаталогах pg_hba.conf.d и pg_ident.conf.d соответственно.

postgres$ grep ^include_dir /etc/postgresql/16/main/pg_hba.conf
include_dir /etc/postgresql/16/main/pg_hba.conf.d
postgres$ grep ^include_dir /etc/postgresql/16/main/pg_ident.conf
include_dir /etc/postgresql/16/main/pg_ident.conf.d

Для темы «Внешняя аутентификация» в виртуальной машине настроены службы OpenLDAP и Kerberos:

student$ systemctl list-units --no-legend krb* slapd*
  krb5-admin-server.service loaded active running Kerberos 5 Admin Server
  krb5-kdc.service          loaded active running Kerberos 5 Key Distribution Center
  slapd.service             loaded active running LSB: OpenLDAP standalone server
(Lightweight Directory Access Protocol)

Page 7: Организационные вопросы

День: ~8 академических часов + обед (1час)

  • Каждая тема, как правило, состоит из
    • презентации и демонстрации: ~40–60 мин
    • практических заданий: ~30 мин, включая перерыв

Page 8: День 1

Управление доступом

    1. Роли и привилегии
    1. Членство в ролях
    1. Доступ на уровне строк
    1. Подходы к настройке

Page 9: День 2

Методы аутентификации

    1. Подключение и аутентификация
    1. Использование SSL
    1. Внешняя аутентификация