Настроить роли и привилегии пользователям PostgreSQL для 1С
Вы можете управлять правами доступа пользователей к базам данных в кластере PostgreSQL для 1С с помощью ролей и привилегий.
Роль — предопределенный набор привилегий. Роли настраиваются через панель управления.
Привилегия — право на выполнение операций над конкретным объектом базы данных: схемой, таблицей, функцией.
Привилегии настраиваются с помощью SQL-команд GRANT и REVOKE.
Назначенные пользователю роли действуют во всех базах данных кластера, а привилегии — только в той базе данных, где они выданы.
Роли и привилегии — независимые механизмы управления правами.
Вы можете использовать их по отдельности или вместе.
Назначение ролей не отменяет привилегии пользователя, которые настроены командами GRANT и REVOKE.
Роли
Пользователям кластера PostgreSQL для 1С можно назначать преднастроенные роли. Создать пользовательские роли нельзя.
Каждому пользователю можно назначить несколько ролей одновременно.
Вы можете назначить роли при создании пользователя, а также изменить список ролей у существующего пользователя — выдать дополнительные роли или забрать ранее выданные.
Преднастроенные роли
Состав преднастроенных ролей в кластере PostgreSQL для 1С изменить нельзя. Роль суперпользователя не предоставляется.
Изменить список ролей у пользователя
Вы можете изменить список ролей у существующего пользователя: выдать дополнительные роли или забрать ранее выданные.
-
В панели управления в верхнем меню нажмите Продукты и выберите Облачные базы данных.
-
Откройте вкладку Активные.
-
Откройте страницу кластера → вкладка Пользователи.
-
В меню пользователя выберите Настроить.
-
В поле Роли нажмите .
-
Измените список ролей у пользователя, для этого отметьте или снимите чекбоксы напротив ролей.
-
Чтобы сохранить изменения, нажмите .
Привилегии
Объект базы данных (схему, таблицу, функцию) создает конкретный пользователь — он становится владельцем объекта и по умолчанию имеет на него все права. Другим пользователям, включая владельца базы данных, можно выдать привилегию на объект.
Начиная с версии PostgreSQL 15, привилегия CREATE на схему public по умолчанию не предоставляется.
Варианты работы со схемой public описаны в подразделе Usage Patterns инструкции Schemas документации PostgreSQL.
Выдать привилегии
Выдать пользователям привилегии на объекты базы данных можно с помощью команды GRANT, подробнее в инструкции GRANT документации PostgreSQL.
-
Подключитесь к базе данных от имени владельца объекта.
-
Выдайте пользователю нужные привилегии с помощью команды
GRANT.Пример выдачи доступа на чтение (
SELECT) к таблицеtableпользователюuser:GRANT SELECT ON table TO user;
Отозвать привилегии
Отозвать у пользователя привилегии можно с помощью команды REVOKE, подробнее в инструкции REVOKE документации PostgreSQL.
-
Подключитесь к базе данных от имени владельца объекта.
-
Отзовите у пользователя привилегии с помощью команды
REVOKE.Пример отзыва привилегии у пользователя
userна схемуschema:REVOKE USAGE ON SCHEMA schema FROM user;
Пример создания пользователя схемы с правами только на чтение
Вы можете создать пользователя с доступом к базе данных кластера, к таблице в схеме по умолчанию и ко всем таблицам схемы.
Автоматически все новые таблицы будут создаваться с доступом только на чтение (read-only) для этого пользователя.
-
Создайте пользователя
user. -
Выдайте доступ пользователю
userк базе данных. -
Подключитесь к базе данных от имени владельца объекта.
-
Создайте схему
schemaи таблицуtable:CREATE SCHEMA schema;CREATE TABLE schema.table(i int);INSERT INTO schema.table(i) values(1); -
Выдайте привилегии пользователю
user:GRANT USAGE ON SCHEMA schema TO user;GRANT SELECT ON ALL TABLES IN SCHEMA schema TO user;ALTER DEFAULT PRIVILEGES IN SCHEMA schema GRANT SELECT ON TABLES TO user;