В чем смысл пользователя ''@localhost в MySQL? [закрыто]

Цитирую MySQL docs:

Если вы не можете понять, почему вы получаете отказ в доступе, удалите из таблицы пользователей все записи, которые имеют значения Host, содержащие символы подстановки (записи, содержащие символы '%' или '_'). Очень распространенной ошибкой является вставка новой записи с Host='%' и User='some_user', думая. что это позволяет вам указать localhost для подключения с одной и той же машины. машины. Причина, по которой это не работает, заключается в том, что стандартные привилегии включают запись с Host='localhost' и User=''. Поскольку эта запись имеет значение Host 'localhost', которое является более конкретным, чем '%', оно используется предпочтительнее новой записи при подключении с адреса localhost! Правильная процедура заключается в том, чтобы вставить вторую запись со значениями Host='localhost' и User='some_user', или удалить запись с Host='localhost' and User=''.

Я не могу понять, зачем вообще нужна эта запись? Я не могу придумать, какой цели они могли бы служить.

Мог ли я потенциально что-то сломать, удалив их? (Одно из предложенных действий в цитате выше)

Примечание: Я знаю, что есть множество вопросов, спрашивающих, почему user@'%' не работает, и ответы содержат именно эту цитату. Я хочу знать, почему эта проблема(?) была создана в первую очередь.

-1
задан 1 November 2012 в 17:46
1 ответ

It is an anonymous account and can be used for various purposes where you don't want to have to specify a username and password, such as within a script.

Granted this is a security hole but is also limited to being on the localhost. You could also alter the grant privileges of this anonymous account so that it can only do selects on a particular database or even single table.

1
ответ дан 5 December 2019 в 20:03

Теги

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