Создание пользователя-администратора в PostgreSQL - PullRequest
0 голосов
/ 19 декабря 2018

Я пытаюсь создать роль администратора / пользователя в PostgreSQL, который должен отвечать следующим требованиям:

  1. Должен быть в состоянии сделать резервную копию для конкретной базы данных (а не для других)
  2. Должен иметь возможность создавать имена пользователей, которые могут обращаться к конкретной базе данных (а не к другим).
  3. Должен иметь возможность создавать / удалять таблицы в конкретной базе данных, а не в другой базе данных
  4. Не должен иметь возможность создавать другие базы данных.

Это то, чтоУ меня пока что:

create role dba with nosuperuser createdb createrole nologin replication bypassrls;
grant usage on schema public to dba;
alter default privileges in schema public grant all on tables to dba;
alter default privileges in schema public grant all on sequences to dba;
grant connect on database myDatabase to dba;
grant usage on schema public to dba; 
grant select on all tables in schema public to dba; 
grant select on all sequences in schema public to dba;
grant all privileges on all tables in schema public to dba;
create user dba_user login inherit encrypted password 'password' in role dba;

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

1 Ответ

0 голосов
/ 19 декабря 2018

Для этого выполните следующие изменения:

  • Передайте право собственности на базу данных и все схемы и объекты в ней новому пользователю.

  • Дайте пользователю CREATEROLE.

  • Убедитесь, что REVOKE CONNECT ON все базы данных FROM PUBLIC.Предоставьте новому пользователю привилегию CONNECT для рассматриваемой базы данных.

  • Не предоставляйте новому пользователю каких-либо разрешений для других баз данных или объектов в них.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...