mysql входят в корневую учетную запись с сокетом Unix

Я желаю некоторую помощь в понимании mysql корневая учетная запись, которая соединяется сокетом Unix. Я не понимаю unix_socket очень хорошо. Вход в систему без пароля касается меня, поскольку я могу неправильно понимать, как вход в систему происходит.

Я выполняю сервер Ubuntu 18.04.1 LTS и установленный mysql-сервер Ver 14.14 Distrib 5.7.23. Я выполнил mysql_secure_installation.

Я не могу войти в mysql с паролем вообще.

mysql -u root -p

Я могу войти в mysql, если выполняется как sudo без пароля.

sudo mysql -u root

Я понимаю, что это вызвано тем, что это использует unix_socket вместо mysql_native_password.

non-sudo пользователь может войти в mysql сервер с моей текущей установкой?

1
задан 22 August 2018 в 12:23

2 ответа

non-sudo пользователь может войти в mysql сервер с моей текущей установкой?

Нет. Но любой с физическим доступом к Вашей системе может, когда Вы зарегистрированы в рабочий стол.

Я сам сделал бы a

ALTER USER 'root'@'localhost' IDENTIFIED BY '{password}';

при подсказке mysql. Это вызовет пароль для root@localhost. На Ubuntu можно также сделать

sudo dpkg-reconfigure mysql-server-5.7

(скорректируйте 5.7 к своей версии).

0
ответ дан 7 December 2019 в 23:41

Предполагая, что у вашего корневого пользователя MySQL включена аутентификация unix_socket , тогда НЕТ ; пользователь без полномочий root и не sudo может НЕ получить доступ к вашей учетной записи root в MySQL.

Если кто-то может получить root-доступ (пользователь Linux) к вашей машине, то он сможет получить доступ к вашей учетной записи root-пользователя MySQL, независимо от того, какой метод аутентификации вы используете. Например. пользователь root может (повторно) запустить MySQL с отключенной аутентификацией и войти в систему без аутентификации вообще.

Таким образом, использование метода аутентификации unix_socket НЕ делает вашу установку MySQL менее безопасной, а просто более удобной.Фактически можно утверждать, что это делает его более безопасным, потому что независимо от того, как вы настраиваете MySQL, пользователь root может подключаться только через localhost - удаленные подключения пользователя root не разрешены. Обратите внимание, что в этом контексте прямое соединение с localhost считается localhost; например через SSH.

Использование вместо этого пароля (который, кстати, можно сделать, если хотите ), НЕ дает реальных преимуществ. Если, конечно, вы не хотите разрешить пользователю root удаленное подключение ( НЕ рекомендуется ).

Кстати, с включенной аутентификацией unix_socket из учетной записи root (пользователь Linux) вы можете запустить оболочку MySQL (как пользователь root MySQL, просто запустив:

mysql

AFAIK, который также должен работать с Учетная запись пользователя sudoer тоже. То есть:

sudo mysql
0
ответ дан 13 March 2020 в 03:33

Другие вопросы по тегам:

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