В этом руководстве я покажу, как вывести список пользователей MySQL, посмотреть их пароли и узнать привилегии из командной строки.
Аккаунт в MySQL состоит из двух компонентов: имя пользователя и хост.
Это позволяет одному и тому же пользователю в MySQL использовать аккаунты с разными правами, которые будут зависеть от хоста с которого осуществляется подключение.
В поле Host , помимо обычных IP адресов и доменных имен, вы можете увидеть знак процента % , который является спецсимволом обозначающим «любой» хост.
Важное Замечание: Спецсимвол % не включает в себя localhost , т.к. localhost обозначает подключение через UNIX сокет вместо стандартного TCP/IP.
Пользователи В MySQL
Показать всех MySQL пользователей:
Вывести только уникальные имена пользователей:
Показать MySQL пользователей вместе с хостами с которых им разрешено подключение:
Посмотреть MySQL пользователей, их пароли и хосты:
начиная с MySQL 5.7:
Дельный Совет: Нужно сменить пароль MySQL пользователя? Это легко сделать из командной строки! Читать далее →
Права Пользователей В MySQL
В MySQL, чтобы посмотреть какие привилегии даны пользователю, вы можете использовать команду SHOW GRANTS .
Без каких-либо дополнительных параметров, команда SHOW GRANTS показывает права текущего аккаунта под которым вы подключились на сервер.
Для команды SHOW GRANTS необходима привилегия SELECT по отношению к базе mysql , за исключением когда узнаются права текущего пользователя, таким образ, если у вас есть такая привилегия, вы также можете просмотреть права остальных MySQL пользователей.
Дельный Совет: Создайте базу данных в MySQL и дайте пользователю все права на нее с помощью GRANT ALL PRIVILEGES ! Простое и понятное руководство с хорошими примерами по созданию базы данных в MySQL! Читать далее →
Права текущего MySQL пользователя:
Какие привилегии даны MySQL пользователю (ели вы не указываете значение хоста для имени пользователя, тогда MySQL в качестве хоста берет % ):
Показать права, данные конкретному аккаунту в MySQL при подключении с определенного хоста:
Дата публикации: 2016-05-03
От автора: вы куда полезли через ограду, гражданин! На заборе написали пароль, чтоб не забыть. Так может вы с этой стороны написали? Да нет – это не мой написан. Ну, удачных поисков, а всем остальным я расскажу, как узнать пароль MySQL, не перелезая через чужие заборы.
Нет ничего проще!
Если у вас есть элементарные знания и навыки обращения с СУБД MySQL, и (главное) учетная запись администратора, то узнать пароли всех пользователей можно в два счета. Для этого можно использовать как программные оболочки, так и команды SQL.
Что представляет собой сервер СУБД? Это обычная база данных, содержащая в себе всю нужную для работы MySQL информацию. Здесь хранятся все настройки сервера, баз, сведения о плагинах, дате и времени, пользовательские учетные записи, их привилегиях и паролях. В контексте данной статьи нас интересует значения последних.
Чтобы узнать пароль MySQL, нужно зайти на сервер под своей учеткой администратора. Затем открыть системную базу данных с именем «mysql» и сделать выборку значений из таблицы user. Для наглядности все интересующие сведения (значения паролей) мы получим с помощью php MyAdmin.
Откроем системную БД, и посмотрим на содержимое нужной нам таблицы «сблизи»: в одном из ее столбцов прописаны все пароли. Как видите, ничего сложного и для этого нам понадобилось всего несколько минут. Но что это такое? Кто «стибрил» из таблицы понятные значения паролей и заменил их какой-то «абракадаброй»!
Как создать сайт самому?
Какие технологии и знания необходимы сегодня, чтобы создавать сайты самостоятельно? Узнайте на интенсиве!
Спокойствие, и только спокойствие! Никто ничего «не стибрил», просто в таблице указываются уже хешированные пароли. А что у вас глаза такие удивленные? Сейчас все разложим «по полочкам».
Как происходит шифрование в MySQL
Дело в том, что данная СУБД использует собственный алгоритм шифрования паролей. Точнее, не шифрования, а хеширования. Из-за этого пока никто не придумал способа, как расшифровать пароли в MySQL.
Существуют различные алгоритмы хеширования, но если при этом будет использоваться криптографическая толь, то шансов получить значение пароля сводится почти к 0. Криптографическая соль – это дополнительная строка, которая присоединяется к первоначальному значению. В результате на выходе (после хеширования) получается почти «невзламываемый» пароль.
Для установки пароля СУБД использует функцию PASSWORD(). Она не возвращает значения, которое было послано ей на обработку. Поэтому использовать данную функцию для получения «читаемого» пароля не получится. Единственное, что можно сделать – это получить хешированную строку по первоначальному значению. Синтаксис запроса:
Это же значение можно найти в системной таблице user (служебная база данных mysql), куда заносятся все учетные записи пользователей СУБД и хешированные значения паролей.
Путем перебора (если знать хотя бы примерную структуру значения) можно попытаться вспомнить забытый пароль. Но восстановить таким образом полностью неизвестное значение практически невозможно. Помните, что все описанные выше операции производятся под учетной записью администратора (root).
Использование обратимого шифрования
Узнать пароль MySQL, заданный системой по умолчанию для учетных записей сервера не удастся. Но это можно реализовать на уровне баз данных или даже таблиц. Многие движки и CMS, работающие на основе MySQL, имеют собственную (встроенную) систему аутентификации.
Например, если открыть таблицу БД WordPress, где движок сохраняет все данные о пользователях, то в столбце user_pass вы увидите такую же «абракадабру», как и в системной базе MySQL. Это говорит о том, что данная CMS также использует один из алгоритмов необратимого шифрования паролей (md5).
Но можно реализовать схему аутентификации на основе обратимых методов шифрования. Этим и займемся. Не будем сегодня огорчать себя «черным» цветом, и все запросы SQL выполним не через командную строку, а в phpMyAdmin. Для экспериментов я воспользуюсь тестовой БД «db1», в которой хранится одна таблица со «зверюшками» (animal). Добавим новую таблицу с именами хозяев зверей и паролем для входа в их «клетки»
Запустите программу, слева в списке выберите нужную БД. После этого перейдите во вкладку SQL и запустите на выполнение следующий код:
Как создать сайт самому?
Какие технологии и знания необходимы сегодня, чтобы создавать сайты самостоятельно? Узнайте на интенсиве!
Мне достался один VPS сервер, в наследство, так скажем. Бывший владелец не выходит на связь. Как мне узнать пароль root пользователя для базы данных MySQL? Где он храниться в файловой системе Ubuntu 14.04?
3 ответа 3
узнать пароль — естественно, никак (разве что бывший владелец записал его где-нибудь «для памяти»).
но можно установить свой собственный пароль. описано это в интернетах множество раз. повторю для истории:
цифры ("5.5") в вашей системе могут отличаться. в дефолтной установке работает bash-completion , поэтому, набрав всю команду вплоть до mysql-server и нажав два раза tab , вы увидите, какая именно версия пакета mysql-server установлена в вашей системе.
если с автодополнением не вышло, можно узнать версию, например, так: