@ -46,17 +46,21 @@ class MySQLService:
password = gen_password ( )
search_for_user = f " SELECT user FROM mysql.user WHERE user= ' { username } ' "
search_for_db = f " SHOW DATABASES LIKE ' { username } ' "
create_user = f """
CREATE USER ' {username} ' @ ' % ' IDENTIFIED BY % ( password ) s ;
"""
# CREATE USER can't be used in a query with multiple statements
create_user_commands = [
f " CREATE USER ' { username } ' @ ' localhost ' IDENTIFIED BY %(password)s " ,
f " CREATE USER ' { username } ' @ ' % ' IDENTIFIED BY %(password)s " ,
]
create_database = f """
CREATE DATABASE { username } ;
GRANT ALL PRIVILEGES ON { username } . * TO ' {username} ' @ ' localhost ' ;
GRANT ALL PRIVILEGES ON { username } . * TO ' {username} ' @ ' % ' ;
"""
with self . mysql_connection ( ) as con , con . cursor ( ) as cursor :
if response_is_empty ( search_for_user , con ) :
cursor . execute ( create_user , { ' password ' : password } )
for cmd in create_user_commands :
cursor . execute ( cmd , { ' password ' : password } )
if response_is_empty ( search_for_db , con ) :
cursor . execute ( create_database )
else :
@ -67,7 +71,8 @@ class MySQLService:
password = gen_password ( )
search_for_user = f " SELECT user FROM mysql.user WHERE user= ' { username } ' "
reset_password = f """
ALTER USER ' {username} ' @ ' % ' IDENTIFIED BY % ( password ) s
ALTER USER ' {username} ' @ ' localhost ' IDENTIFIED BY % ( password ) s ;
ALTER USER ' {username} ' @ ' % ' IDENTIFIED BY % ( password ) s ;
"""
with self . mysql_connection ( ) as con , con . cursor ( ) as cursor :
@ -80,6 +85,7 @@ class MySQLService:
def delete_db ( self , username : str ) :
drop_db = f " DROP DATABASE IF EXISTS { username } "
drop_user = f """
DROP USER IF EXISTS ' {username} ' @ ' localhost ' ;
DROP USER IF EXISTS ' {username} ' @ ' % ' ;
"""