Для управления правами доступа в PostgreSQL на разных уровнях гранулярности можно использовать следующие подходы:
- Управление на уровне хоста. support.qbpro.ru Доступ определяется в конфигурационном файле сервера pghba.conf. support.qbpro.ru В нём указываются, какие пользователи, с каких компьютеров и к каким базам данных имеют доступ, а также как осуществляется обмен данными для каждого подключения (используются ли пароли, шифрование данных). support.qbpro.ru
- Управление правами ролей. www.8host.com Для изменения прав доступа уже существующей роли нужно использовать команду ALTER ROLE. www.8host.com
- Передача привилегий. www.8host.com Как правило, при создании БД или таблицы права доступа к ней есть только у создавшей её роли. www.8host.com Передавать права доступа другим ролям можно при помощи команды GRANT. www.8host.com
- Контроль доступа на уровне таблиц и столбцов. pgdash.io Для этого нужно редактировать ACL, связанные с таблицей или столбцом. pgdash.io Для этого используются команды GRANT и REVOKE. pgdash.io
Например, чтобы создать пользователя с доступом только на чтение к базе данных, нужно выполнить следующие команды: forum.hpc.name
CREATEUSER reader_user; REVOKEALL PRIVILEGES ONALL TABLES IN SCHEMA public FROM reader_user; GRANTSELECTONALL TABLES IN SCHEMA public TO reader_user;
Эти команды создадут пользователя reader_user, которому предоставлены права только на чтение всех таблиц в схеме public. forum.hpc.name