Посмотреть пользователей mysql ubuntu

Обновлено: 08.07.2024

Учетные записи в СУБД MySQL/MariaDB представлены в виде связки <имя пользователя>@<удаленный хост, с которого можно подключаться>. Это может вызвать путаницу, поэтому необходимо быть внимательнее, например, учетные записи root@localhost и root@192.168.0.15 — разные.

Создание пользователя и выдача прав

Рассмотрим два варианта создания учетных записей в СУБД MySQL/MariaDB.

1. С помощью команды GRANT.

Данный метод позволяет одной командой сразу и создать пользователя, и дать ему права. Но, начиная с MySQL 8, она возвращает ошибку — разработчики запретили ее использование и сначала требуется создать пользователя (с помощью CREATE USER).

> GRANT <тип привилегий> ON <объект> TO <пользователь> [IDENTIFIED BY <пароль>] <дополнительные опции>;

Например, эта команда предоставляет права доступа пользователю и, если его не существует, создает его:

ALL PRIVILEGES: предоставляет полные права на использование данных.
*.* : права предоставляются на все базы и все таблицы.
dbuser: имя учетной записи.
localhost: доступ для учетной записи будет предоставлен только с локального компьютера.
password: пароль, который будет задан пользователю.
WITH GRANT OPTION: будут предоставлены дополнительные права на изменение структуры баз и таблиц.

2. С помощью команды CREATE USER.

Данный метод является универсальным. Он позволяет создать пользователя в системе без каких либо прав. После права назначаются командой GRANT.

Пример создания учетной записи:

После можно задать права командой:

Посмотреть существующих пользователей и их привилегии

Список привилегий (для кажого пользователя смотряться отдельно):

Смена пароля

Команды отличаются в зависимости от версии СУБД.

MySQL

Версия 5.7.6 и более современная:

Версия 5.7.5 и древнее:

* посмотреть версию СУБД можно командой mysql -V.

MariaDB

В MariaDB команда для смены пароля одна, независимо от версии:

* в данном примере будет задан пароль New_Password для пользователя root.

Смена пароля пользователю root после установки

Для старых версий СУБД и новых процедуры различаются.

MySQL < 8 или MariaDB

Первый раз пароль задается из командной строки операционной системы (для MySQL/MariaDB):

> mysqladmin -u root password

Для смены пароля root необходимо выполнить команду в оболочке mysql по инструкции, описанной выше.

MySQL 8 и выше

Пароль создается автоматически при установке системы. Его можно посмотреть командой:

Мы увидим что-то на подобие:

* где oi25?wznro%W — пароль для пользователя root.

Заходим в оболочку sql с помощью данного пароля:

Сброс пароля для root

При необходимости, мы можем сбросить пароль для суперпользователя mysql. Для этого необходимо запустить сервер баз данных в безопасном режиме и ввести команду на смену пароля.

Для начала необходимо остановить сервис:

systemctl stop mysql

systemctl stop mariadb

Создаем каталог /var/run/mysqld и зададим для него нужные права:

mkdir -p /var/run/mysqld

chown mysql:mysql /var/run/mysqld

* в некоторых системах данного каталога может не быть, однако, для безопасного режима mysql он необходим.

Запускаем в безопасном режиме СУБД:

Запускаем оболочку sql — система не потребует пароль:

Выполняем запрос FLUSH PRIVILEGES:

Выходим из оболочки:

Уничтожаем процесс, который запустили ранее:

После, запускаем mysql в нормальном режиме:

systemctl start mysql

systemctl start mariadb

Другие примеры

Рассмотрим часто встречаемые операции по работе с пользователями сервера баз данных.

1. Особые права

Предоставление особых прав пользователю:

* права на выборку и обновление данных во всех таблицах базы base1 для пользователя dbuser
** список всех возможных прав: all privileges, alter, create, create temporary tables, delete, drop, execute, file, index, insert, lock tables, process, references, reload, replication client, replication slave, select, show databases, shutdown, super, update, usage

2. Удаленное подключение

Разрешение на удаленное подключение и использование базы MySQL:

* предоставит права пользователю dbuser, который будет подключаться с компьютера с IP-адресом 192.168.0.55.

Мы можем сделать менее жесткое ограничение, разрешив доступ из подсети (особенно удобно при использовании динамических адресов):

* в данном примере мы разрешим подключение для любого узла из сети 192.168.0.0/24.

Или мы можем, вовсе, разрешить водключение с любого хоста (не безопасно):

3. Права на резервное копирование

Создание учетной записи MySQL с правами создания резервных копий:

4. Права доступа к определенной таблице

По сути, это такое же предоставление прав, но с указанием конкретной таблицы после базы:

* в данном примере предоставлены все права на таблицу table1 в базе base1.

5. Удаление пользователя

Нам может также понадобиться удалить ранее созданного пользователя. Это делается в два этапа:

* в данном примере мы первой командой отняли все права у пользователя dbuser (localhost) и второй — удалили его.

6. Права на создание других пользователей

Чтобы наш пользователь мог создавать других пользоватлей, задаем права:

* в данном примере мы даем права учетной записи creator, которая может подключаться к серверу с локального хоста.

Если нужно, чтобы из под данной учетной записи можно было также назначать права, добавим:

* обратите внимание, что мы просто добавили WITH GRANT OPTION.

Возможные ошибки

1. ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

Причина: в новых версиях по умолчанию активированы политики на проверку сложности пароля. Их список можно посмотреть командой:

Вывод команды будет, примерно, следующим:

+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password_check_user_name | OFF |
| validate_password_dictionary_file | |
| validate_password_length | 8 |
| validate_password_mixed_case_count | 1 |
| validate_password_number_count | 1 |
| validate_password_policy | MEDIUM |
| validate_password_special_char_count | 1 |
+--------------------------------------+--------+

  1. Привести пароль в соответствие требованиям политик.
  2. Отключить политику, которая не позволяет использовать желаемый пароль. Например, чтобы отключить требование использовать цифры вводим:

> SET GLOBAL validate_password_number_count = 0;

2. ERROR 1728 (HY000): Cannot load from mysql.tables_priv. The table is probably corrupted

Причина: система считает, что таблица tables_priv в базе mysql неисправна.

Решение: чаще всего, ошибка возникает при переносе баз с одного сервера в другой. Если версии СУБД разные, таблица tables_priv может работать со сбоями. Для исправления необходимо выполнить команду mysql_upgrade — она проверяет все таблицы на совместимость с текущей версией MySQL/MariaDB и вносит исправления. Применение команды:

Favorite

Добавить в избранное (2 оценок, среднее: 5,00 из 5)

Как показать пользователей в MySQL

Эта статья объясняет, как перечислить все учетные записи пользователей на сервере базы данных MySQL через командную строку.

Прежде чем начать

Прежде чем вы начнете эту статью, мы предполагаем, что у вас уже есть MySQL или сервер MariaDB, установленный в вашей системе. Если нет, вы можете легко установить его, следуя одному из руководств ниже:

  • Как установить MySQL на CentOS, Ubuntu с 16.04
  • Как установить MariaDB на Ubuntu 14

Все команды будут выполнены внутри оболочки MySQL как пользователь root.

Чтобы получить доступ к оболочке MySQL, введите следующую команду и введите пароль пользователя root MySQL при запросе:

Если вы еще не установили пароль для пользователя root в MySQL можно опустить переключатель -p .

Если вы забыли ваш MySQL пароль root, вы можете сбросить его, следуя этой инструкции.

Показать пользователей в MySQL

Вывод должен выглядеть примерно так:

Учетная запись пользователя в MySQL состоит из имени пользователя и имени хоста.

Например, чтобы получить список всех учетных записей пользователей MySQL, включая информацию о пароле и о том, активен он или истек, вы можете использовать следующий запрос:

Вывод

В этой статье мы показали вам, как получить список всех учетных записей пользователей MySQL, извлекая данные из пользовательской таблицы в базе данных mysql.

Не стесняйтесь оставить комментарий, если у вас есть какие-либо вопросы.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Как Посмотреть Список Пользователей MySQL БД в Linux

MySQL — один из самых популярных менеджеров баз данных в мире. Он имеет множество функций, которые делают его надёжным и эффективным. Однако, как и любая другая программа, максимально эффективен он только при правильном использовании.

Простой и проверенный способ повысить защиту MySQL — создать пользователей с ограниченными правами доступа к базе данных. В этом руководстве вы узнаете, как в MySQL посмотреть список пользователей и их привилегии, а также более эффективно управлять базами данных в терминальной среде Linux на вашем VPS.

Зачем Создавать Пользователей в MySQL?

При установке MySQL первым создаётся пользователь root, или администратор MySQL. Пользователь с правами root имеет полный доступ к базе данных MySQL, а поэтому вряд ли вы захотите, чтобы у всех пользователей были такие же привилегии.

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

Имея это ввиду, системный администратор должен создавать пользователей с определёнными разрешениями для отдельных баз данных, а следовательно для отдельных таблиц. При этом, если безопасность этого пользователя будет поставлена под угрозу, ущерб будет минимальным.

Как Посмотреть Список Пользователей MySQL в Linux

Здесь вы узнаете самый простой способ:

Войдите через SSH

Во-первых, вам необходимо подключиться к вашему серверу, используя SSH. У нас есть руководство с подробным описанием этого процесса!

Убедитесь, что у вас есть права root

Как только у нас будет доступ к нашему серверу, мы должны войти в консоль MySQL. Для этого нам нужны root-права. Введите в командную строку следующее:

Введите свой пароль администратора (root) MySQL

Затем нам нужно будет ввести пароль root для MySQL. Он должен отличаться от системного пароля root.

Мы сможем запускать предложения и команды, как только зайдём в консоль MySQL.

MySQL список пользователей

Теперь мы можем вывести список пользователей, созданных в MySQL, с помощью следующей команды:

В результате мы сможем посмотреть всех пользователей, которые были созданы в MySQL.

Добавьте столбец хоста (необязательно)

В списке могут быть повторяющиеся пользователи. Это связано с тем, что MySQL фильтрует доступ к серверу в соответствии с IP-адресом, с которого он выполняется. Таким образом, вы также можете добавить столбец хоста.

Благодаря этому мы сможем посмотреть пользователей MySQL, а также с какого хоста или IP-адреса они имеют разрешение на доступ.

Итоги

Администрирование сервера базы данных не всегда простая задача. Поэтому мы должны быть осторожны с созданием и управлением разрешениями юзеров. Теперь вы знаете, как вывести список пользователей MySQL, привязанных к базе данных.

Также вы всегда можете обратиться к официальной документации MySQL для дополнительной информации о разрешениях и создании пользователей.

Ольга уже около пяти лет работает менеджером в сфере IT. Написание технических заданий и инструкций — одна из её главных обязанностей. Её хобби — узнавать что-то новое и создавать интересные и полезные статьи о современных технологиях, веб-разработке, языках программирования и многом другом.

Из списка видно, что в базе имеются учетные данные суперпользователя root с возможностью подключаться только локально с данного сервера(адреса 127.0.0.1, localhost и имя сервера testhost).
Еще есть системная учетная запись debian-sys-maint служит для внутренних системных целей СУБД MySQL.

В предыдущей части я рассказывал как настроить в конфигурационном файле /etc/mysql/my.cnfудаленное подключение к серверу баз данных MySQL.
Напомню: для этого в параметре bind-address выставляется IP адрес 0.0.0.0 вместо 127.0.0.1, т.е. демон mysqld будет слушать не только локальный интерфейс 127.0.0.1, а все адреса имеющиеся на сервере.
В этой части я расскажу как создать пользователя mysql, какие права выдать для различных пользователей, как выставить пароль и хост с которого будет производиться подключение.

Пользователь для веб сайта
Обычно различные веб приложения которые хранят информацию в базе mysql требуют создать отдельную учетную запись. Создадим пользователя website-user от имени которого будет работать наше веб приложение.
Пользователя можно создать через команду create user, а потом выдать права grant select,insert. но удобнее и быстрее сразу воспользоваться командой grant

Здесь я сразу указал:

Администратор баз данных
В следующем примере создадим учетную запись администратора баз данных который будет подключаться с IP адреса компьютера администратора 192.168.8.10

Выдадим полные права пользователю admin на базу website:

Теперь администратор может подключиться со своего компьютера к серверу баз данных. В этом примере я использовал команду create user, а уже потом grant в принципе разницы нет как будут создаваться пользователи.

Пользователь backup
Создадим пользователя backup для резервного копирования всех базы данных

Как поменять пароль?
Чтобы поменять пароль можно воспользоваться командой mysqladmin эту команду нужно запускать в bash.

А так же можно воспользоваться командой (SQL синтаксис) из консоли MySQL

Как сбросить пароль root?
Поменять пароль root можно всеми теми же командами, что и для обычного пользователя. Но вот что делать если вы забыли пароль рута или по каким-то причинам его утеряли, тогда проделаем следующие операции.

1) Останавливаем MySQL:

2) Запускаем MySQL с особыми параметрами:

3) Запускаем клиента MySQL:

4) Выполняем запрос SQL:

где newpassword — новый пароль

5) Применяем изменения:

6) Выходим из клиента MySQL:

7) Перезапускаем MySQL сервер:

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

Посмотрим существующих пользователей

Дадим права пользователю test на чтение всех таблиц базы scada

Дадим все права пользователю test на все таблицы базы scada

Для того чтобы выставить новому пользователю полные права на все базы данных используем следующую команду:

Доступ к базе для данного пользователя возможен только с localhost. Если вы хотите дать ему доступ к базе с любого хоста, используете % вместо localhost:

Проверить права пользователя :

Удаляются пользователи проще, чем создаются :). Например, если мы решим избавиться от пользователя ’my_user’

Читайте также: