diff --git a/src/PaaS/postgresql/PostgreSQL-index.md b/src/PaaS/PostgreSQL/PostgreSQL-index.md similarity index 100% rename from src/PaaS/postgresql/PostgreSQL-index.md rename to src/PaaS/PostgreSQL/PostgreSQL-index.md diff --git a/src/PaaS/postgresql/about.md b/src/PaaS/postgresql/about.md deleted file mode 100644 index b286657..0000000 --- a/src/PaaS/postgresql/about.md +++ /dev/null @@ -1,87 +0,0 @@ -# Cloud PostgreSQL - -## Назначение сервиса - -**Cloud PostgreSQL** - это управляемый облачный сервис реляционной базы данных PostgreSQL. Он позволяет развернуть и использовать отказоустойчивый кластер базы данных без необходимости самостоятельно настраивать серверы, репликацию и механизмы отказоустойчивости. - -PostgreSQL - это современная система управления базами данных, которая поддерживает стандарт SQL и используется для хранения и обработки данных приложений. - -В **Cloud PostgreSQL** все основные операции по управлению кластером выполняются автоматически. - -Сервис самостоятельно: -- управляет ролями серверов базы данных (основной сервер и реплики); -- отслеживает состояние узлов; -- автоматически переключает основной сервер при сбоях. - -Для обеспечения стабильной работы сервиса используется несколько инфраструктурных компонентов: -- **Patroni** - управляет кластером PostgreSQL и автоматическим переключением при отказах; -- **etcd** - хранит состояние кластера и обеспечивает согласованность работы узлов; -- **HAProxy** - обеспечивает единую точку подключения и распределяет клиентские подключения между узлами. - -Подключение к базе данных выполняется через прокси-узлы сервиса. Пользователю не требуется подключаться к отдельным серверам кластера — все операции производятся через единую точку доступа. - -Для управления базами данных и пользователями доступен web-интерфейс **pgAdmin**, позволяющий выполнять администрирование непосредственно через браузер. - -## Конфигурации кластера - -Сервис Cloud PostgreSQL поддерживает версии СУБД с 13 по 17 включительно. - -Кластер предоставляется в архитектуре Primary–Standby, которая обеспечивает: - -- синхронную репликацию данных; -- повышенную отказоустойчивость. - -В рамках данной конфигурации создаётся кластер из виртуальных серверов, включающий: - -- **Primary** (основной сервер) — обязательный узел, на котором выполняются операции записи данных; -- **Replica** (реплики) — дополнительные узлы (от 0 до 4), создаваемые по желанию пользователя. - -Реплики являются полноценными участниками кластера PostgreSQL и могут использоваться для выполнения запросов, не изменяющих данные (например, SELECT). - -В многоузловой конфигурации серверы кластера размещаются на разных физических хостах гипервизора, что повышает устойчивость сервиса к отказам оборудования. - -## Режимы репликации - -По умолчанию фиксация изменений выполняется в **синхронном режиме**. Это означает, что операция записи считается завершённой только после того, как данные будут зафиксированы как на основном сервере, так и на одной из реплик. - -Если в кластере настроено несколько реплик, синхронный режим применяется только к одной из них. Остальные реплики работают в асинхронном режиме — изменения передаются на них без ожидания подтверждения. - -При необходимости режим репликации может быть изменён на полностью **асинхронный**. В этом случае изменения сначала фиксируются на основном сервере, а затем передаются на реплики с задержкой. - -## Доступ к серверам и оптимизация соединений - -Прямой доступ к серверам кластера (например, по протоколу SSH) не предоставляется. Пользователь взаимодействует с базой данных исключительно через точки подключения, предоставленные сервисом. - -На каждом узле кластера установлен пулер соединений **PgBouncer**, который может использоваться для ускорения работы приложений за счёт оптимизации подключений к базе данных. - -::: warning Примечание - -Использование PgBouncer не является обязательным - подключение возможно как напрямую к PostgreSQL, так и через пулер, а также одновременно обоими способами. - -::: - -## Возможности сервиса - -**Cloud PostgreSQL** предоставляет набор возможностей, позволяющих использовать PostgreSQL в облаке без необходимости самостоятельного администрирования инфраструктуры. - -Сервис обеспечивает: - -- автоматическое управление кластером PostgreSQL; -- высокую доступность за счёт репликации и автоматического переключения primary-узла; -- единую точку подключения к базе данных через прокси; -- автоматическое переключение при отказе узлов кластера без вмешательства пользователя; -- web-доступ к управлению базами данных и пользователями через pgAdmin; -- совместимость со стандартными клиентскими инструментами PostgreSQL; -- возможность установки расширений PostgreSQL в базу данных. - -## Сценарии использования сервиса - -**Cloud PostgreSQL** подходит для использования в системах, где требуется надёжное хранение данных и упрощённое управление инфраструктурой базы данных. - -Сервис может применяться в следующих сценариях: - -- размещение production-баз данных с высокими требованиями к доступности; -- использование PostgreSQL в микросервисной архитектуре с единой точкой подключения к базе данных; -- хранение критичных данных с минимальным временем простоя при отказах инфраструктуры; -- быстрое развёртывание PostgreSQL-кластера без необходимости ручной настройки репликации и failover; -- администрирование баз данных через веб-интерфейс без прямого доступа к серверам кластера. diff --git a/src/PaaS/postgresql/cluster_parameter.md b/src/PaaS/postgresql/cluster_parameter.md deleted file mode 100644 index bf27193..0000000 --- a/src/PaaS/postgresql/cluster_parameter.md +++ /dev/null @@ -1,205 +0,0 @@ -# О разделе - -Данный раздел содержит описание технических параметров кластера PostgreSQL и порядок их первичной конфигурации. - -Настройка указанных параметров выполняется администратором облачного провайдера на этапе развёртывания сервиса. Пользователь не имеет прямого доступа к их самостоятельной установке. - -Перед созданием кластера клиент предоставляет перечень требуемых параметров менеджеру. Администратор облачного провайдера выполняет конфигурацию в соответствии с согласованными требованиями. - -## Выбор типа и размера дискового хранилища - -Производительность базы данных напрямую зависит от скорости, с которой она может читать и записывать данные на диск. При заказе кластера необходимо выбрать тип дискового хранилища, который определит максимальную скорость работы (IOPS) и время отклика. - -**IOPS (Input/Output Operations Per Second)** — количество операций чтения или записи, которые диск может выполнить за секунду. Чем выше этот показатель, тем быстрее база данных обрабатывает запросы. - -## Доступные типы хранилищ: - -| Название | Лимит IOPS | Время отклика | -| ---------------| ------------------ | ------------- | -| **Fast SAS** | до 2 IOPS на 1 ГБ | до 10 мс | -| **SSD** | до 5 IOPS на 1 ГБ | до 7 мс | -| **Fast SSD** | до 10 IOPS на 1 ГБ | до 5 мс | -| **Ultra NVMe** | до 25 IOPS на 1 ГБ | до 3 мс | - -::: warning Примечание - -После выбора типа диска необходимо указать объем дискового хранилища, который будет выделен под данные кластера PostgreSQL. Минимальный объем - 50 ГБ. - -::: - -## Конфигурация вычислительных ресурсов - -В данном разделе определяются вычислительные мощности кластера: процессорные ресурсы, оперативная память и количество серверов (нод), из которых будет состоять кластер PostgreSQL. - -### Количество нод в кластере - -Количество нод определяет отказоустойчивость кластера и возможность распределять запросы на чтение между репликами. Чем больше нод, тем выше надёжность и производительность операций чтения. - -Количество нод выбирается в диапазоне **от 1 до 5**. - -### Процессор (CPU) - -Процессор — это вычислительная мощность, выделяемая каждой ноде кластера. Количество vCPU определяет, насколько быстро база данных сможет: - -- обрабатывать запросы; -- выполнять сложные операции (сортировки, объединения таблиц); -- обслуживать одновременные подключения. - -Доступный диапазон: **от 2 до 24 vCPU** на ноду. - -### Оперативная память (RAM) - -Оперативная память — один из ключевых ресурсов для производительности базы данных. Данные, помещающиеся в RAM, обрабатываются максимально быстро, без обращения к диску. - -Доступный диапазон: **от 4 до 768 ГБ RAM** на ноду. - -### Доступ в интернет - -При заказе сервиса можно выбрать пропускную способность канала связи, через который будет осуществляться доступ к кластеру PostgreSQL из сети интернет. - -**Доступные варианты скорости:** -- 50 Мбит/с; -- 100 Мбит/с; -- 200 Мбит/с; -- 300 Мбит/с; -- 400 Мбит/с; -- 500 Мбит/с; -- 1000 Мбит/с (1 Гбит/с). - -::: warning Примечание - -Для выбранного канала предоставляется статический белый IP-адрес. - -::: - -## Параметры конфигурации IPSEC - -Ниже приведены основные параметры, задаваемые при развёртывании кластера PostgreSQL. Часть параметров определяется клиентом на этапе заказа услуги, часть — фиксирована и не подлежит изменению. - -### Данные о конфигурации IPSEC - -Параметры подключения (имя туннеля, устройство, публичный IP-адрес) заполняются вручную на основании информации, предоставленной заказчиком. - -### Версия IKE (Internet Key Exchange) - -Версия IKE выбирается из выпадающего списка, который содержит два значения: - -- **IKE v1** — более ранняя версия протокола; -- **IKE v2** — более современная версия, обеспечивающая лучшую устойчивость соединения и более гибкую обработку ошибок. - -Рекомендуется использовать IKE v2, если оборудование заказчика это поддерживает. - -### Метод аутентификации - -Метод аутентификации выбирается из выпадающего списка, который содержит два варианта: - -- **PSK** (Pre-Shared Key) — аутентификация с использованием заранее согласованного общего ключа; -- **Certificate** (сертификат) — аутентификация с использованием цифровых сертификатов. - -## Этап 1 - установка защищенного соединения - -На данном этапе задаются параметры шифрования и аутентификации для защищённого канала связи. Все параметры выбираются вручную из выпадающих списков. - -### Алгоритм хэширования - -Определяет алгоритм хэширования для защиты управляющего канала. Параметр заполняется вручную из выпадающего списка: - -- **SHA1** — формирует хэш длиной 160 бит, имеет коллизии (уязвимости), в современных системах считается устаревшим, используется только для совместимости со старым оборудованием. -- **SHA2-256** — формирует хэш длиной 256 бит, существенно более устойчив к атакам, оптимальный баланс между безопасностью и производительностью. -- **SHA2-384** — длина хэша составляет 384 бита, имеет повышенную криптостойкость, требует больше вычислительных ресурсов, чем SHA-1 и SHA2-256. Используется в средах с повышенными требованиями к безопасности. -- **SHA2-512** — длина хэша составляет 512 бит, обеспечивает самый высокий уровень стойкости из перечисленных, создает наибольшую нагрузку на процессор. Обычно применяется в системах с повышенными требованиями к криптографии. - -### Шифрование (Hash) - -Определяет алгоритм симметричного шифрования. Параметр заполняется вручную из выпадающего списка: - -AES 128 — использует 128-битный ключ, обеспечивает быстрое шифрование, имеет достаточный уровень безопасности для большинства задач. -AES 256 — использует 256-битный ключ, обеспечивает более высокую криптостойкость, оказывает немного большую нагрузку на CPU. -AES GCM 128 / AES GCM 192 / AES GCM 256 — данные алгоритмы совмещают шифрование и контроль целостности, обладают более современным режимом работы, считаются более эффективными по производительности, рекомендуются в современных конфигурациях. Разница между алгоритмами — в длине ключа. - -### DH Group (группа Диффи — Хеллмана) - -Механизм Diffie-Hellman используется для безопасной генерации общего секретного ключа между сторонами туннеля без передачи этого ключа по сети. Чем выше номер группы и длина ключа, тем выше криптографическая стойкость соединения. - -Параметр заполняется вручную из выпадающего списка: - -group 2; -group 5; -group 14; -group 15; -group 16; -group 19; -group 20; -group 21. - -### IKE Mode (только для IKEv1) - -Параметр **IKE Mode** определяет способ установления соединения на этапе 1 при использовании протокола IKEv1. - -Доступны два режима: Main и Aggressive. Они отличаются количеством сообщений при установке соединения и уровнем защиты идентификационных данных. - -- **Main Mode** — стандартный и более безопасный режим работы IKEv1; -- **Aggressive Mode** — упрощённый и ускоренный режим установления соединения с более низким уровнем защиты данных. - -### Время жизни (Lifetime) - -Параметр определяет, как долго действуют согласованные ключи в рамках первой фазы. После истечения времени выполняется повторная генерация ключей. - -## Этап 2 - передача данных - -Этап 2 IPsec-соединения отвечает за шифрование и защиту пользовательского трафика после того, как защищённый канал был установлен на этапе 1. Этот этап регулирует передачу данных между сторонами через безопасный туннель, который обеспечивает конфиденциальность и целостность данных. - -### Алгоритм хэширование (Hash) - -Аналогично этапу 1, параметр Hash используется для защиты целостности передаваемых данных. Он обеспечивает проверку того, что данные не были изменены при передаче. Доступны следующие алгоритмы: - -- SHA1; -- SHA2-256; -- SHA2-384; -- SHA2-512. - -## Шифрование - -Этап 2 отвечает за шифрование пользовательского трафика. Это важнейший параметр, который защищает данные при их передаче по сети. Доступны следующие алгоритмы: - -- AES 128; -- AES 256; -- AES GCM 128; -- AES GCM 192; -- AES GCM 256. - -### PFS - -**Enable perfect forward secrecy (PFS)** - параметр, активирующий генерацию нового ключа на этапе 2. При включенном PFS группа Diffie-Hellman (DH) будет такая же как и на 1-й фазе. - -Данный параметр представлен в виде чекбокса. При его включении: - -- на этапе 2 выполняется дополнительный обмен ключами DH; -- для каждой новой IPsec-сессии формируется новый независимый криптографический секрет; -- ключи шифрования пользовательского трафика не зависят от ключей этапа 1. - -### DH Group (группа Диффи — Хеллмана) - -Группа DH определяет параметры обмена ключами между сторонами. Чем выше номер группы, тем выше криптографическая стойкость и безопасность обмена. - -Данный параметр так же содержит в себе выпадающий список, состоящий из следующих значений: - -- group 2; -- group 5; -- group 14; -- group 15; -- group 16; -- group 19; -- group 20; -- group 21. - -### Время жизни (Lifetime) - -Определяет, как долго действуют согласованные ключи в рамках второй фазы. - -- рекомендуемое значение: 3600 секунд (1 час); -- после истечения времени выполняется повторная генерация ключей. - -### Префиксы локальной сети заказчика - -Этот параметр определяет, какие сети на стороне заказчика будут маршрутизироваться через **IPsec-туннель**. Префиксы задаются в формате `192.168.1.0/24`, который позволяет указать диапазон IP-адресов. \ No newline at end of file diff --git a/src/PaaS/postgresql/connection.md b/src/PaaS/postgresql/connection.md deleted file mode 100644 index d561775..0000000 --- a/src/PaaS/postgresql/connection.md +++ /dev/null @@ -1,86 +0,0 @@ -# Общая схема подключения - -Доступ к кластеру PostgreSQL осуществляется через прокси. Клиентские подключения принимаются прокси, который маршрутизирует трафик к соответствующим узлам кластера (master или replica) в зависимости от выбранного порта. Прямое подключение к узлам базы данных не используется. - -Подключение к кластеру **Cloud PostgreSQL** осуществляется через прокси-сервер. Прокси является единой точкой входа для всех клиентских подключений и принимает входящие соединения от приложений, административных инструментов и пользователей. - -В зависимости от выбранного порта прокси автоматически направляет трафик: -- на активный primary-узел - для операций чтения и записи -- на реплики - для операций только чтения - -Прямое подключение к отдельным узлам базы данных не используется и не предоставляется. Взаимодействие с кластером всегда выполняется через прокси-сервер. - -## Подключение к базе данных - -Для подключения к базе данных необходимо использовать IP-адрес прокси-сервера, который предоставляется после заказа услуги. - -Этот IP-адрес является единой точкой входа для работы с кластером PostgreSQL. Все подключения к базе данных - как из приложений, так и из клиентских инструментов - выполняются через него. - -Использование других IP-адресов или попытка прямого подключения к отдельным узлам кластера не предусмотрены. - -## Доступные порты - -Для разных типов нагрузки используются разные порты: - -|Порт |Назначение | -|------|-----------------------------------------| -|5432 |Primary (чтение и запись) | -|15432 |Replica (только чтение) | -|6432 |Primary через PgBouncer (чтение и запись)| -|16432 |Replica через PgBouncer (только чтение) | - -### Особенности работы портов - -- Порты для чтения и записи (5432, 6432) всегда направляют трафик на активный primary-узел. При смене primary переключение происходит автоматически; -- Порты только для чтения (15432, 16432) направляют трафик на активные реплики. Если реплик несколько, нагрузка распределяется между ними по принципу round-robin; -- Если в кластере отсутствуют реплики, порты для чтения не используются - подключение по ним не устанавливается. - -### Рекомендации по выбору порта - -- Для OLTP-нагрузки и большого количества соединений рекомендуется использовать **порты PgBouncer (6432 или 16432)**; -- Для операций записи используйте **master-порты (5432 или 6432)**; -- Для read-only запросов можно использовать **replica-порты (15432 или 16432)**. - -## Доступ к pgAdmin - -Для администрирования базы данных используется web-интерфейс pgAdmin. -Доступ осуществляется по DNS-имени, которое нужно прописать локально в инфраструктуре откуда будет происходить доступ к web-интерфейсу сервиса: -`10.X.X.4 .cloud-pg.dfcloud.ru` - -После добавления записи pgAdmin будет доступен по адресу: -`https://.cloud-pg.dfcloud.ru` - -Авторизация выполняется с использованием учётных данных, предоставленных вместе с доступом к сервису. - -::: warning Важно - -- подключение к базе данных возможно только через указанный прокси-IP; -- в интерфейсе pgAdmin уже добавлен сервер базы данных, созданный для данной инсталляции. Для подключения требуется ввести пароль от учётной записи базы данных; -- pgAdmin предназначен для администрирования и не рекомендуется для выполнения тяжёлых или длительных запросов в production-среде. - -::: - -## Примеры подключения к PostgreSQL - -Подключение к primary: -`psql -h 10.X.X.4 -p 5432 -U -d ` - -Подключение через PgBouncer: -`psql -h 10.X.X.4 -p 6432 -U -d ` - -### Подключение через DBeaver / DataGrip - -При создании подключения укажите: -- Host: 10.X.X.4; -- Port: 5432 или 6432; -- Database: ``; -- User / Password: согласно выданным доступам; -- Тип подключения: PostgreSQL. - -### Пример строки подключения - -Primary: -`postgresql://:@10.X.X.4:5432/` - -Через PgBouncer: -`postgresql://:@10.X.X.4:6432/` diff --git a/src/PaaS/postgresql/user_capabilities.md b/src/PaaS/postgresql/user_capabilities.md deleted file mode 100644 index dbe1ea2..0000000 --- a/src/PaaS/postgresql/user_capabilities.md +++ /dev/null @@ -1,203 +0,0 @@ -# Создание сервиса Cloud PostgreSQL - -Данный раздел описывает права, которые предоставляются пользователю PostgreSQL при создании сервиса **Cloud PostgreSQ**L**, а также перечень административных операций, доступных ему для самостоятельного выполнения. - -При развертывании сервиса автоматически создаётся пользователь базы данных с преднастроенными атрибутами и привилегиями. Эти права позволяют заказчику самостоятельно управлять своими базами данных, ролями и пользователями в рамках созданного экземпляра PostgreSQL. - -## Общая информация о пользователе - -При инициализации сервиса автоматически создаётся пользователь: - -```nginx -client -``` - -Данный пользователь является основной учётной записью для административной работы в рамках предоставленного экземпляра PostgreSQL. Он предназначен для самостоятельного управления базами данных, ролями и правами доступа в пределах выданных привилегий. - -## Выданные права и ограничения - -Пользователю `client` назначается набор атрибутов и привилегий, позволяющих выполнять административные операции в рамках своего экземпляра базы данных. - -### Атрибуты роли - -Пользователь создаётся со следующими атрибутами: -- `CREATEDB` — разрешено создание и удаление баз данных; -- `CREATEROLE` — разрешено создание ролей и пользователей, а также управление их. - -Атрибут `SUPERUSER` пользователю не предоставляется. Соответственно, доступ к системным операциям уровня кластера и настройкам сервера отсутствует. - -### Права на системную базу postgres: - -К стандартной базе данных `postgres` пользователю предоставлено только право подключения: -- `CONNECT` -Иные привилегии (создание объектов, изменение схем и т.д.) на данную базу не выдаются. - -### Мониторинг и системные представления: - -Для выполнения базовых задач мониторинга пользователю дополнительно предоставлены: -- членство в роли `pg_monitor`; -- право `SELECT` на системное представление: -```sql -pg_catalog.pg_stat_replication -``` - -Доступ к системной информации предоставляется исключительно в режиме чтения. Изменение системных представлений и параметров сервера недоступно. - -## Обязательная смена пароля - -После первого подключения к базе данных пользователь `client` обязан выполнить смену пароля. -Смена пароля может быть выполнена: -- в открытом виде (с передачей нового значения пароля); -- с указанием заранее сгенерированного хэша. - -На сервере используется алгоритм шифрования паролей: - -``` -scram-sha-256 -``` - -При использовании SCRAM применяется следующий формат хэша: - -``` -$:$: -``` - -### Пример смены пароля в открытом виде - -```sql -ALTER USER client WITH PASSWORD 'new_strong_password'; -``` - -### Пример смены пароля с указанием хэша - -```sql -ALTER USER client WITH ENCRYPTED PASSWORD '$4096:...'; -``` - -Рекомендуется использовать сложный уникальный пароль, соответствующий требованиям информационной безопасности, и хранить его в защищённом хранилище. - -## Создание новой базы данных - -Пользователь `client` имеет право создавать новые базы данных в рамках своего экземпляра PostgreSQL. - -### Пример создания базы данных - -Для создания базы данных используется стандартная команда: - -```sql -CREATE DATABASE app_db; -``` - -Если необходимо назначить владельца базы данных, можно указать соответствующего пользователя. По умолчанию владельцем создаваемой базы данных является пользователь, который её создает. - -### Пример создания базы данных с указанием владельца - -```sql -CREATE DATABASE app_db OWNER client; -``` - -В этом примере база данных `app_db` будет принадлежать пользователю `client`. Пользователь, указанный как владелец, будет иметь полный контроль над базой данных, включая права на её удаление и изменение. - -## Создание пользователей и ролей - -Пользователь `client` имеет право создавать новые роли и пользователей для приложений, а также управлять их правами доступа. - -### Создание роли без логина - -Если требуется создать роль, которая не будет иметь возможности входа в базу данных (например, для организации прав доступа), можно использовать команду: - -```sql -CREATE ROLE app_role; -``` - -### Создание пользователя с паролем - -Для создания пользователя с паролем используется команда: - -```sql -CREATE USER app_user WITH PASSWORD 'app_password'; -``` - -После этого новый пользователь `app_user` будет иметь возможность входа в базу данных, используя указанный пароль. - -### Назначение роли пользователю - -Для назначения роли пользователю используется команда `GRANT`. Это позволяет управлять правами пользователя в рамках определённой роли: - -```sql -GRANT app_role TO app_user; -``` - -После выполнения этой команды пользователь `app_user` станет членом роли `app_role`, и будет наследовать все права, связанные с этой ролью. - -### Передача владельца базы данных - -Если необходимо передать право владения базой данных другому пользователю, это можно сделать с помощью следующей команды: - -```sql -ALTER DATABASE app_db OWNER TO app_user; -``` - -Теперь база данных `app_db` будет принадлежать пользователю `app_user`, и он будет иметь полный контроль над ней. - -### Управление правами доступа - -После создания пользователей и ролей необходимо назначить им соответствующие права доступа. - -### Выдача прав на подключение к базе данных - -Для того чтобы пользователь мог подключаться к базе данных, нужно предоставить ему соответствующие права: - -```sql -GRANT CONNECT ON DATABASE app_db TO app_user; -``` - -Эта команда разрешает пользователю `app_user` подключаться к базе данных `app_db`. - -### Права на схему public - -Для предоставления пользователю прав на использование схемы `public` можно выполнить следующую команду: - -```sql -GRANT USAGE, CREATE ON SCHEMA public TO app_user; -``` - -Эти права позволяют пользователю `app_user` использовать объекты в схеме `public`, а также создавать новые объекты внутри неё. - -### Права на существующие таблицы - -Чтобы предоставить пользователю доступ к существующим таблицам в схеме `public`, можно использовать команду: - -```sql -GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO app_user; -``` - -Эта команда позволяет пользователю `app_user` выполнять операции чтения, вставки, обновления и удаления данных в существующих таблицах схемы `public`. - -### Права на будущие таблицы - -Если необходимо автоматически предоставить пользователю права на новые таблицы, создаваемые в схеме `public`, используйте команду: - -```sql -ALTER DEFAULT PRIVILEGES IN SCHEMA public -GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO app_user; -``` - -Эта команда обеспечит, что все будущие таблицы, создаваемые в схеме `public`, будут автоматически иметь права для пользователя `app_user` на чтение, вставку, обновление и удаление данных. - -## Мониторинг репликации - -Пользователь `client` имеет доступ к системным представлениям для мониторинга состояния репликации в кластере PostgreSQL. - -### Просмотр состояния репликации - -Для того чтобы просмотреть текущий статус репликации, пользователь может выполнить запрос к системному представлению: - -``` SQL -SELECT * FROM pg_stat_replication; -``` -Этот запрос возвращает информацию о всех репликах, подключённых к основному (primary) серверу. - -### Ограничения доступа - -Пользователь `client` имеет доступ к данным в представлении `pg_stat_replication` только в режиме **read-only**. Это означает, что он может просматривать состояние репликации, но не может изменять или вмешиваться в процесс репликации. \ No newline at end of file