Найти тему
Скриптонит

Создать пользователя, БД, предоставление доступа PostgreSQL

Добрый день.

О пишу как просто создать базу, пользователя, группы и ограничение доступа к ним.

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

Для этого:

1.Создаем базу:

CREATE DATABASE имя_БД;

2. Создаем пользователя:

CREATE USER имя_пользователя WITH PASSWORD 'myPassword';

3. Для удобства в будущем создаем группу для предоставления доступа:

CREATE GROUP имя_группы WITH USER имя_пользователя;

4. Перед тем как настраивать доступ к созданной БД необходимо запретить доступ ко всем имеющимся БД в схеме, если пользователь не в группе:

REVOKE ALL ON DATABASE postgres FROM PUBLIC;

REVOKE ALL ON DATABASE имя_бд FROM PUBLIC;

               …

5. Предоставим доступ группе к БД

GRANT ALL PRIVILEGES ON DATABASE имя_БД TO GROUP имя_группы;

5.1 Либо непосредственно пользователю доступ к БД

GRANT ALL PRIVILEGES ON DATABASE имя_БД TO имя_пользователя;

Чтобы запретить доступ делаем следующее:

Исключаем из группы пользователя:

ALTER GROUP имя_группы drop USER имя_пользователя;

Если пользователь не в группе делаем ему Revoke на базе

А вернуть или в последствии добавить доступ пользователю

Необходимо добавить пользователя в группу

  ALTER GROUP имя_БД ADD USER имя_пользователя;