Доступ к Google Cloud SQL root@localhost запрещен, если я не сбрасываю пароль каждый день

У меня есть приложение App Engine, которое использует базу данных Cloud SQL для хранения некоторых данных. У меня есть задание cron, которое запускает кучу кода для сбора данных в час ночи, и оно не работает с ошибкой:

OperationalError: (1045, «Отказано в доступе для пользователя« root »@« localhost »(с использованием пароля: НЕТ)»)

Если я зайду в Google Developers Console и установлю пароль для root@localhost на «» (т. е. открою диалоговое окно смены пароля, нажму «ОК», ничего не вводя в поле пароля), задание, на которое указывает задание cron, завершится без сучка и задоринки . Доступ SQL будет работать до конца дня.

Но следующее задание cron на следующий день завершится с той же ошибкой.

Похоже, что в какой-то момент ночью пароль root@localhost сбрасывается. Кто-нибудь знает, что происходит?

Спасибо!


person Dave W    schedule 16.09.2015    source источник


Ответы (2)


Мне не удалось найти документацию о сбросе пароля пользователя root. Я предполагаю, что у Google есть собственное задание cron, которое принудительно сбрасывает пароли для root пользователей с пустыми паролями, поскольку это серьезная уязвимость безопасности, учитывая общедоступные IP-адреса для каждого экземпляра Cloud SQL.

Однако в этой статье "Создание пользователей" настоятельно рекомендуется не использовать учетную запись root на все.

Не зная, зачем вам нужно использовать учетную запись root с пустым паролем, я бы порекомендовал явно создать пользователя для заданий cron с подходящим паролем. Это защищает ваш экземпляр Cloud SQL и упрощает мониторинг запросов, выполняемых заданиями cron.

person Nicholas    schedule 17.09.2015
comment
Возможно, вы правы в том, что Google сбрасывает пароли для root, если пароля нет. Я установил пароль для root на что-то, и задание cron не имело проблем с доступом в выходные. Тогда спасибо! Я оставил задание cron, используя root, потому что, когда я возился с пользователями и паролями в консоли разработчика, я наткнулся на сообщение, в котором говорится, что Google App Engine всегда подключается к Cloud SQL как root@localhost. - person Dave W; 21.09.2015

Google Cloud SQL никогда этого не делает. Не могли бы вы проверить свою работу cron, чтобы увидеть, действительно ли она удаляет пользователя?

person Tianzhou    schedule 19.09.2015