Це стара версія документу!
На початку маємо інстанс Постгреса 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;