Есть ли хороший способ подключиться к базе данных, не предоставляя учетные данные в Python?

#python #mysql-python

#python #mysql-python

Вопрос:

Я создаю программу на Python, которую я хотел бы распространять. Я также хотел бы иметь базу данных MySQL, в которой хранились бы имена пользователей, хэшированные и зашифрованные пароли для каждого регистрируемого пользователя. Как я могу подключиться к базе данных, если никто не сможет открыть исходный код и посмотреть учетные данные для подключения к базе данных?

Комментарии:

1. Вы никогда не добавляете какие-либо учетные данные или конфигурации, подобные этому, в исходный код! вы должны перенести его в отдельный файл конфигурации и загрузить во время выполнения.

2. Если вашей программе необходимо подключиться к базе данных, у нее должны быть какие-то учетные данные. Вы могли бы предоставить пользователю ограниченные привилегии в БД: возможно, они могут получить доступ только к определенным таблицам и могут только запрашивать / вставлять и обновлять. Или оберните сервер базы данных в другое серверное приложение с его собственными учетными данными для входа, чтобы ваши пользователи входили в серверное приложение, но только серверное приложение имеет прямой доступ к БД. Поиск в Google «защита учетных данных базы данных для настольных приложений» даст вам много возможностей для продолжения — этот вопрос задавался ранее на различных сайтах stackexchange.

3. @snakecharmerb спасибо, как вы думаете, использование сокетов python было бы хорошим способом обернуть базу данных

Ответ №1:

Если вы используете git, вы можете сохранить учетные данные в файле json, используя json python packpage и ввести имя файла .gitignore . Итак, тому, кто клонирует ваш репозиторий, потребуется создать файл json для работы скрипта, вы также можете создать README.md объяснение, как это сделать