Задать вопрос
@IvanGeso
Релейщик

Как создать учетные записи MySQL из программы Python?

Есть приложение на Python, которое использует MySQL базу данных. Но чтобы оно работало корректно, нужно предварительно создать учетную запись MySQL в консоли. При этом в коде на Python используются пароль и имя этого пользователя. Также в коде Python для создания БД и таблиц используется известный, заранее заданный пароль root MySQL. Это все сильно смущает ввиду абсолютного отсутствия безопасности. Поэтому нужно реализовать функционал, позволяющий создать учетную запись пользователя MySQL при первом запуске программы из самой программы, а также функционал позволяющий поменять root пароль от MySQL из самой программы. Глядел в сторону модулей os и subprocess, но толкового ничего не вышло, увы(
  • Вопрос задан
  • 388 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 3
saboteur_kiev
@saboteur_kiev Куратор тега Python
software engineer
"Также в коде Python для создания БД и таблиц используется известный, заранее заданный пароль root MySQL.
Это все сильно смущает ввиду абсолютного отсутствия безопасности."


"а также функционал позволяющий поменять root пароль от MySQL из самой программы"


Вас смущает наличие пароля от рута, но не смущает возможность потом его задать?
Зачем менять шило на мыло?

Вынесите логины и пароли из кода в конфиг файлы, и создавайте юзеров нормальными средствами.
Ответ написан
LaRN
@LaRN
Senior Developer
Можно создать аккаунт для приложения в целом и через этот аккаунт ходить в БД.
Пользователи работают с приложением (и при этом не имеют напрямую доспупа к БД), контроль прав происходит на уровне приложения, там же происходит добавление новых пользовательских аккаутнов, но это уже не аккаунты БД, а аккаунты приложения.
Ответ написан
Комментировать
Храните доступы как Вам удобно. Тот же битрикс хранит доступы к базе открыто в подключаемых файлах. Главное, чтобы на файлах и директориях стояли правильные права, которые не позволят обычным пользователям читать файлы с паролями. Только отдельный пользователь из под которого выполняется приложение и администратор могут его читать.

Я не эксперт в вопросах безопасности, но концепция состоит в том, чтобы приложению были доступны минимально необходимые привилегии для его работы и не более (это касается и настроек привилегий для пользователя СУБД, никаких рутов и грант олл!)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы