« A portée de main, toutes les informations sur mon parcours. »


BTS Services Informatiques aux Organisations, un parcours passionnant au cœur des technologies et de l’innovation.

genererScriptSqlCreate.py

Ce script lit un CSV de comptes (login, password, etc.) et génère un fichier SQL pour MariaDB. Pour chaque utilisateur, il crée une base de données, un utilisateur MariaDB avec mot de passe, et lui attribue les droits nécessaires sur sa base

#!/usr/bin/env python3
import csv # Import du module pour manipuler les fichiers CSV
# Nom du fichier CSV contenant les logins, mots de passe, noms et prénoms
fichier_csv = "loginToulouse.csv"
# Nom du fichier SQL qui sera généré
fichier_sql = "creerUsersBddAcces.sql"
# Ouverture du fichier CSV en lecture et du fichier SQL en écriture
with open(fichier_csv, newline='', encoding="utf-8") as f_csv, \
open(fichier_sql, "w", encoding="utf-8") as f_sql:
# Création d'un lecteur CSV qui interprète la première ligne comme des noms de colonnes
reader = csv.DictReader(f_csv, delimiter=';')
# Parcours de chaque ligne du fichier CSV
for row in reader:
# Récupération du login et du mot de passe depuis le CSV
login = row["login"]
password = row["password"]
# Nom de la base de données associé à l'utilisateur (préfixe st_ pour STESIO)
bdd = f"st_{login}"
# Écriture des commandes SQL dans le fichier
# Création de la base de données si elle n'existe pas
f_sql.write(f"CREATE DATABASE IF NOT EXISTS {bdd};\n")
# Création de l'utilisateur MariaDB avec son mot de passe
f_sql.write(
f"CREATE USER IF NOT EXISTS '{login}'@'localhost' IDENTIFIED BY '{password}';\n"
)
# Attribution des privilèges nécessaires sur la base de données de l'utilisateur
f_sql.write(
f"GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER "
f"ON {bdd}.* TO '{login}'@'localhost';\n"