Користувальницькькі налаштування

Налаштування сайту


programming:databases:postgresql:new_app_proposal

Це стара версія документу!


Приклад створення системи ролей для нового застосунку

Опис

На початку маємо інстанс Постгреса mydb. Для нового проєкту створюємо нову базу даних в цьому інстансі, і двох користувачів: example_migrator може робити все в цій БД, а example_user може читати та писати в таблиці БД. Тільки example_migrator має створювати нові схеми, таблиці, функції в цій БД! Користувач може лише додаватаи, модифікувати та видаляти записи в таблицях.

Створення користувачів

CREATE ROLE example_migrator WITH PASSWORD 'putsecrethere' NOSUPERUSER NOCREATEDB LOGIN;
CREATE ROLE example_user WITH PASSWORD 'putsecrethere' NOSUPERUSER NOCREATEDB LOGIN;

Створення бази даних

GRANT example_migrator TO CURRENT_USER WITH ADMIN option;
CREATE DATABASE exampledb WITH OWNER example_migrator;
GRANT CONNECT ON DATABASE exampledb TO example_user;
ALTER DEFAULT PRIVILEGES FOR ROLE example_migrator GRANT USAGE ON SCHEMAS TO example_user;
ALTER DEFAULT PRIVILEGES FOR ROLE example_migrator GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO example_user;
REVOKE example_migrator from CURRENT_USER;
programming/databases/postgresql/new_app_proposal.1628075677.txt.gz · Востаннє змінено: 2021/08/04 14:14 повз charon