mirror of
https://github.com/fromchat-messenger/web.git
synced 2026-09-22 19:15:08 +03:00
42 lines
2.4 KiB
Plaintext
42 lines
2.4 KiB
Plaintext
-- PostgreSQL initialization script for FromChat compliance architecture
|
|
-- Creates separate databases and users for each service with minimal required permissions
|
|
|
|
-- Create users with passwords from environment variables
|
|
-- Variables are substituted by envsubst before PostgreSQL runs this script
|
|
CREATE USER main_user WITH PASSWORD '${MAIN_DB_PASSWORD}';
|
|
CREATE USER messaging_user WITH PASSWORD '${MESSAGING_DB_PASSWORD}';
|
|
CREATE USER file_storage_user WITH PASSWORD '${FILE_STORAGE_DB_PASSWORD}';
|
|
|
|
-- Create databases for each service
|
|
CREATE DATABASE fromchat_main OWNER main_user;
|
|
CREATE DATABASE fromchat_messaging OWNER messaging_user;
|
|
CREATE DATABASE fromchat_files OWNER file_storage_user;
|
|
|
|
-- Connect to main database and set up
|
|
\c fromchat_main
|
|
CREATE SCHEMA IF NOT EXISTS fromchat_main AUTHORIZATION main_user;
|
|
GRANT ALL PRIVILEGES ON DATABASE fromchat_main TO main_user;
|
|
GRANT ALL PRIVILEGES ON SCHEMA fromchat_main TO main_user;
|
|
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA fromchat_main TO main_user;
|
|
ALTER DEFAULT PRIVILEGES IN SCHEMA fromchat_main GRANT ALL ON TABLES TO main_user;
|
|
ALTER DEFAULT PRIVILEGES IN SCHEMA fromchat_main GRANT ALL ON SEQUENCES TO main_user;
|
|
|
|
-- Connect to messaging database and set up
|
|
\c fromchat_messaging
|
|
CREATE SCHEMA IF NOT EXISTS fromchat_messaging AUTHORIZATION messaging_user;
|
|
GRANT ALL PRIVILEGES ON DATABASE fromchat_messaging TO messaging_user;
|
|
GRANT USAGE ON SCHEMA fromchat_messaging TO messaging_user;
|
|
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA fromchat_messaging TO messaging_user;
|
|
GRANT USAGE ON ALL SEQUENCES IN SCHEMA fromchat_messaging TO messaging_user;
|
|
ALTER DEFAULT PRIVILEGES IN SCHEMA fromchat_messaging GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO messaging_user;
|
|
ALTER DEFAULT PRIVILEGES IN SCHEMA fromchat_messaging GRANT USAGE ON SEQUENCES TO messaging_user;
|
|
|
|
-- Connect to files database and set up
|
|
\c fromchat_files
|
|
CREATE SCHEMA IF NOT EXISTS fromchat_files AUTHORIZATION file_storage_user;
|
|
GRANT ALL PRIVILEGES ON DATABASE fromchat_files TO file_storage_user;
|
|
GRANT USAGE ON SCHEMA fromchat_files TO file_storage_user;
|
|
GRANT SELECT, INSERT, UPDATE ON ALL TABLES IN SCHEMA fromchat_files TO file_storage_user;
|
|
GRANT USAGE ON ALL SEQUENCES IN SCHEMA fromchat_files TO file_storage_user;
|
|
ALTER DEFAULT PRIVILEGES IN SCHEMA fromchat_files GRANT SELECT, INSERT, UPDATE ON TABLES TO file_storage_user;
|
|
ALTER DEFAULT PRIVILEGES IN SCHEMA fromchat_files GRANT USAGE ON SEQUENCES TO file_storage_user; |