Actualiser scripts/server-postgres/create_pg_role.sh
passage par un script temporaire
This commit is contained in:
@@ -29,10 +29,10 @@ echo ""
|
|||||||
echo "🔐 Génération d'un mot de passe fort pour le rôle '$ROLE_NAME'..."
|
echo "🔐 Génération d'un mot de passe fort pour le rôle '$ROLE_NAME'..."
|
||||||
ROLE_PASSWORD=$(generate_token 20)
|
ROLE_PASSWORD=$(generate_token 20)
|
||||||
|
|
||||||
# Exécution des commandes SQL de manière sécurisée
|
# Générer un fichier SQL temporaire pour la vérification + création
|
||||||
echo "🔎 Exécution des commandes SQL avec sudo..."
|
SQL_FILE=$(mktemp)
|
||||||
|
|
||||||
sudo -u postgres env PGPASSWORD="${POSTGRES_PASSWORD}" psql -v ON_ERROR_STOP=1 -U postgres -h localhost <<EOF
|
cat <<EOF > "$SQL_FILE"
|
||||||
DO \$\$
|
DO \$\$
|
||||||
BEGIN
|
BEGIN
|
||||||
IF NOT EXISTS (SELECT FROM pg_roles WHERE rolname = '${ROLE_NAME}') THEN
|
IF NOT EXISTS (SELECT FROM pg_roles WHERE rolname = '${ROLE_NAME}') THEN
|
||||||
@@ -45,6 +45,14 @@ END
|
|||||||
\$\$;
|
\$\$;
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
chmod 644 "$SQL_FILE"
|
||||||
|
|
||||||
|
# Une seule exécution de psql via sudo avec mot de passe PostgreSQL exporté
|
||||||
|
echo "🔎 Exécution des commandes SQL avec sudo..."
|
||||||
|
sudo -u postgres bash -c "PGPASSWORD='${POSTGRES_PASSWORD}' psql -v ON_ERROR_STOP=1 -f '${SQL_FILE}'"
|
||||||
|
|
||||||
|
rm -f "$SQL_FILE"
|
||||||
|
|
||||||
# Affichage des identifiants si création
|
# Affichage des identifiants si création
|
||||||
echo ""
|
echo ""
|
||||||
echo "-------------------------------------------"
|
echo "-------------------------------------------"
|
||||||
|
|||||||
Reference in New Issue
Block a user