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 python3import csv # Import du module pour manipuler les fichiers CSV# Nom du fichier CSV contenant les logins, mots de passe, noms et prénomsfichier_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 écriturewith 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"