|
|
|
@ -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}'@'%'; |
|
|
|
|
""" |
|
|
|
|
|
|
|
|
|