38 lines
1.5 KiB
Bash
Executable File
38 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
# Funzione per creare un database e un utente limitato
|
|
# Argomenti: NOME_DB, NOME_UTENTE, PASSWORD_UTENTE
|
|
create_limited_user_and_db() {
|
|
local database=$1
|
|
local user=$2
|
|
local password=$3
|
|
|
|
echo " Configurazione database: $database per l'utente: $user"
|
|
|
|
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "postgres" <<-EOSQL
|
|
CREATE DATABASE $database;
|
|
CREATE USER $user WITH PASSWORD '$password';
|
|
\c $database
|
|
REVOKE ALL ON SCHEMA public FROM PUBLIC;
|
|
GRANT USAGE ON SCHEMA public TO $user;
|
|
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO $user;
|
|
GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public TO $user;
|
|
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO $user;
|
|
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT USAGE, SELECT ON SEQUENCES TO $user;
|
|
EOSQL
|
|
}
|
|
|
|
echo "Inizio inizializzazione database multipli..."
|
|
|
|
# 1. Database per Keycloak (L'utente admin ha già i permessi perché proprietario del DB principale)
|
|
# Non serve crearlo qui se è già definito in POSTGRES_DB nel docker-compose,
|
|
# ma assicuriamoci che esista.
|
|
echo "Verifica database Keycloak..."
|
|
|
|
# 2. Creazione Microservizi con permessi LIMITATI (Sola gestione DATI, no struttura)
|
|
# Formato: nome_db, nome_utente, password
|
|
create_limited_user_and_db "negozi" "user_negozi" "Anker26!"
|
|
create_limited_user_and_db "keycloak" "user_keycloak" "Anker26!"
|
|
|
|
echo "Inizializzazione completata con successo!" |