Избегайте небезопасных паролей командной строки, работающих MySQL из скрипта - PullRequest
0 голосов
/ 16 марта 2020

У меня есть скрипт bash, который входит в систему MySQL и создает базу данных. Он имеет последовательность, которая запрашивает учетные данные MySQL (имя пользователя и пароль), а затем выполняет

read username
read password
read databasename
mysql -u$username -p$password -e "CREATE DATABASE $databasename;"

всякий раз, когда я запускаю этот сценарий, я получаю предупреждение «Использование пароля в интерфейсе командной строки может быть небезопасным "

Как правильно и безопасно создать такой скрипт, где вам нужно войти в систему MySQL и затем запустить команду?

Ответы [ 2 ]

1 голос
/ 16 марта 2020

Если вы введете ps aux, вы увидите все программы, выполняющиеся в данный момент на компьютере, включая аргументы командной строки. Итак ... сказать, что «Использование пароля в интерфейсе командной строки может быть небезопасным» - это массовое занижение.

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

0 голосов
/ 16 марта 2020

Вы можете сохранить свои данные для входа, используя mysql_config_editor:

mysql_config_editor set --login-path=local --host=localhost --user=username --password=password

Затем выполните запрос командной строки, как:

mysql --login-path=local -e "statement"

См. Это учебное пособие, Существует альтернативный метод написания файла конфигурации напрямую для более старых версий mySQL.

...