×
Мы обрабатываем cookies, чтобы сделать наш сайт удобнее и персонализированнее для вас. Подробнее: политика использования «cookies» и «политики конфиденциальности».

Для самостоятельной настройки ознакомьтесь с инструкцией

Дополнительные настройки cookies в браузерах

Файлы cookie автоматически загружаются в ваш браузер при посещении веб-сайта. У вас есть возможность управлять этими файлами. Если Вы не согласны с использованием файлов cookies, запретите их сохранение на своём устройстве, удалите уже имеющиеся файлы cookies через настройки браузера или прекратите использование сайта.

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

Инструкция по отключению cookies
Принять
Настроить
Отклонить

ДОКУМЕНТАЦИЯ

Выберите версию, форк и язык для СУБД Digital Q.DataBase, чтобы прочитать или скачать всю документацию.
Техподдержка
Документация
Диасофт
Авторские права © 2016–2025 ООО "Диасофт Экосистема"
Скачать всю документацию:

3.6.2. Атрибуты роли

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

привилегия входа (LOGIN)

Только роли с атрибутом LOGIN могут использоваться в качестве начального имени роли для подключения к базе данных. Роль с атрибутом LOGIN можно считать тем же самым, что и «пользователь базы данных». Чтобы создать роль с привилегией входа, используйте либо:

CREATE ROLE имя LOGIN;
CREATE USER имя;

(CREATE USER эквивалентна CREATE ROLE, за исключением того, что CREATE USER включает LOGIN по умолчанию, в то время как CREATE ROLE — нет.)

статус суперпользователя

Суперпользователь базы данных обходит все проверки разрешений, кроме права на вход в систему. Это опасная привилегия, и ее не следует использовать неосторожно; лучше всего выполнять большую часть работы от имени роли, которая не является суперпользователем. Чтобы создать нового суперпользователя базы данных, используйте CREATE ROLE имя SUPERUSER. Вы должны делать это от имени роли, которая уже является суперпользователем.

создание баз данных

Роли должно быть явно дано разрешение на создание баз данных (за исключением суперпользователей, так как они обходят все проверки разрешений). Чтобы создать такую роль, используйте CREATE ROLE имя CREATEDB.

создание ролей

Роли должно быть явно дано разрешение на создание новых ролей (за исключением суперпользователей, так как они обходят все проверки разрешений). Чтобы создать такую роль, используйте CREATE ROLE имя CREATEROLE. Роль с привилегией CREATEROLE может изменять и удалять роли, которые были предоставлены пользователю с CREATEROLE с опцией ADMIN. Такое предоставление происходит автоматически, когда пользователь с CREATEROLE, не являющийся суперпользователем, создает новую роль, так что по умолчанию пользователь с CREATEROLE может изменять и удалять роли, которые он создал. Изменение роли включает в себя большинство изменений, которые могут быть сделаны с помощью ALTER ROLE, включая, например, смену паролей. Оно также включает модификации роли, которые могут быть сделаны с помощью команд COMMENT и SECURITY LABEL.

Однако CREATEROLE не дает возможности создавать роли SUPERUSER и не дает никакой власти над уже существующими ролями SUPERUSER. Кроме того, CREATEROLE не дает права создавать пользователей REPLICATION, а также возможности предоставлять или отзывать привилегию REPLICATION или изменять свойства ролей таких пользователей. Тем не менее, она позволяет использовать ALTER ROLE ... SET и ALTER ROLE ... RENAME для ролей REPLICATION, а также использовать COMMENT ON ROLE, SECURITY LABEL ON ROLE и DROP ROLE. Наконец, CREATEROLE не дает возможности предоставлять или отзывать привилегию BYPASSRLS.

инициирование репликации

Роли должно быть явно дано разрешение на инициирование потоковой репликации (за исключением суперпользователей, так как они обходят все проверки разрешений). Роль, используемая для потоковой репликации, должна также иметь разрешение LOGIN. Чтобы создать такую роль, используйте CREATE ROLE имя REPLICATION LOGIN.

пароль

Пароль имеет значение только в том случае, если метод аутентификации клиента требует, чтобы пользователь ввел пароль при подключении к базе данных. Методы аутентификации password и md5 используют пароли. Пароли базы данных отделены от паролей операционной системы. Укажите пароль при создании роли с помощью CREATE ROLE имя PASSWORD 'строка'.

наследование привилегий

Роль по умолчанию наследует привилегии ролей, членом которых она является. Однако, чтобы создать роль, которая по умолчанию не наследует привилегии, используйте CREATE ROLE имя NOINHERIT. В качестве альтернативы наследование можно переопределить для отдельных предоставлений прав (grants) с помощью WITH INHERIT TRUE или WITH INHERIT FALSE.

обход безопасности на уровне строк (RLS)

Роли должно быть явно дано разрешение на обход любой политики безопасности на уровне строк (RLS) (за исключением суперпользователей, так как они обходят все проверки разрешений). Чтобы создать такую роль, используйте CREATE ROLE имя BYPASSRLS от имени суперпользователя.

лимит подключений

Лимит подключений может указывать, сколько одновременных соединений может установить роль. -1 (по умолчанию) означает отсутствие лимита. Укажите лимит подключений при создании роли с помощью CREATE ROLE имя CONNECTION LIMIT 'целое_число'.

Атрибуты роли могут быть изменены после создания с помощью ALTER ROLE. Подробности см. на страницах справочника по командам CREATE ROLE и ALTER ROLE.

Роль также может иметь специфичные для роли значения по умолчанию для многих параметров конфигурации среды выполнения, описанных в Глава 3.4. Например, если по какой-то причине вы хотите отключать сканирование по индексу (подсказка: это плохая идея) каждый раз при подключении, вы можете использовать:

ALTER ROLE myname SET enable_indexscan TO off;

Это сохранит настройку (но не применит ее немедленно). В последующих подключениях этой роли это будет выглядеть так, как если бы команда SET enable_indexscan TO off была выполнена непосредственно перед началом сессии. Вы все еще можете изменить эту настройку во время сессии; она будет только значением по умолчанию. Чтобы удалить специфичную для роли настройку по умолчанию, используйте ALTER ROLE имя_роли RESET имя_переменной. Обратите внимание, что настройки по умолчанию, прикрепленные к ролям без привилегии LOGIN, практически бесполезны, так как они никогда не будут задействованы.

Когда не-суперпользователь создает роль, используя привилегию CREATEROLE, созданная роль автоматически предоставляется обратно создавшему ее пользователю, как если бы суперпользователь выполнил команду GRANT created_user TO creating_user WITH ADMIN TRUE, SET FALSE, INHERIT FALSE. Поскольку пользователь CREATEROLE может выполнять специальные действия в отношении существующей роли только в том случае, если у него есть ADMIN OPTION на нее, этого предоставления как раз достаточно, чтобы позволить пользователю CREATEROLE администрировать созданные им роли. Однако, поскольку роль создается с INHERIT FALSE, SET FALSE, пользователь CREATEROLE не наследует привилегии созданной роли и не может получить доступ к ее привилегиям с помощью SET ROLE. Тем не менее, поскольку любой пользователь, имеющий ADMIN OPTION для роли, может предоставить членство в этой роли любому другому пользователю, пользователь CREATEROLE может получить доступ к созданной роли, просто предоставив эту роль самому себе с опциями INHERIT и/или SET. Таким образом, тот факт, что привилегии не наследуются по умолчанию и не предоставляется SET ROLE по умолчанию, является мерой предосторожности против случайностей, а не функцией безопасности. Также обратите внимание, что, поскольку это автоматическое предоставление прав дается начальным суперпользователем, оно не может быть удалено или изменено пользователем CREATEROLE; однако любой суперпользователь может отозвать его, изменить и/или выдать дополнительные подобные права другим пользователям CREATEROLE. Любые пользователи CREATEROLE, имеющие ADMIN OPTION для роли в любой момент времени, могут ее администрировать.

Наверх
свяжитесь
с нами
контакты
Для прямой связи с нами вы можете использовать контакты ниже, либо оставить заявку через форму обратной связи, и мы обязательно свяжемся с вами

*поля обязательные к заполнению