zaLinux.ru

Как проверить, какие пользователи MySQL/MariaDB имеются и их характеристики


Оглавление

  1. Как вывести имена всех пользователей MySQL/MariaDB
  2. Как вывести имена всех пользователей и их хостов в MySQL/MariaDB
  3. Как в MySQL/MariaDB проверить, для каких пользователей разрешён вход без пароля
  4. Как в MySQL/MariaDB проверить, у каких пользователей истёк срок действия пароля. Как вывести пользователей с истёкшим паролем
  5. Как в MySQL/MariaDB проверить, какой плагин используется для идентификации пользователя
  6. Как проверить, какие привилегии имеются у пользователя
  7. Как вывести все настройки пользователей MySQL/MariaDB

Как вывести имена всех пользователей MySQL/MariaDB

Если нужно получить имена всех пользователей СУБД, то подключитесь к серверу MySQL/MariaDB

mysql -u root -p

Затем выполните следующий SQL-запрос:

SELECT User FROM mysql.user;

Как вывести имена всех пользователей и их хостов в MySQL/MariaDB

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

Чтобы вывести имя пользователя вместе с именем хоста выполните следующий SQL-запрос:

SELECT User,Host FROM mysql.user;

Как в MySQL/MariaDB проверить, для каких пользователей разрешён вход без пароля

СУБД MySQL и MariaDB позволяют настроить пользователя таким образом, чтобы он мог подключаться к базам данным и делать SQL-запросы без ввода пароля. Следующая команда выведет всех пользователей, кто может подключаться без пароля к серверу MySQL/MariaDB.

SELECT User,Host FROM mysql.user WHERE Password = '' AND authentication_string = '';

Это тестовая среда, поэтому здесь пользователю root разрешено подключаться и выполнять команды без пароля — в реальной рабочей среди это, конечно же, недопустимо.

Обратите внимание, что в разных версиях и вариантах СУБД (MySQL или MariaDB) хеш пароля может хранится в поле Password или authentication_string. В MariaDB если оба этих поля пусты, значит пользователю разрешён вход без пароля; если оба эти поля имеют значения (в них хранится хеш пароля), значит пользователь должен ввести пароль для входа. В MySQL до версии 5.7.26 хеш пароля хранился в поле Password, а начиная с MySQL 5.7.26 хеш пароля хранится в authentication_string.

Смотрите также:

Как в MySQL/MariaDB проверить, у каких пользователей истёк срок действия пароля. Как вывести пользователей с истёкшим паролем

Чтобы вывести список всех пользователей с истёкшим паролем, используйте следующий запрос:


SELECT User,Host FROM mysql.user WHERE password_expired = 'Y';

Как в MySQL/MariaDB проверить, какой плагин используется для идентификации пользователя

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

SELECT User,Host,plugin FROM mysql.user;

Как проверить, какие привилегии имеются у пользователя

Таблица user в базе данных mysql имеет довольно много столбцов, в которых хранятся разнообразные настройки каждого пользователя. Среди этих настроек имеются права (привилегии) пользователя. Далее дан список всех столбцов mysql.user. Колонки с привилегиями пользователей имеют в имени суффикс «_priv». О значение многих столбцов можно догадаться по их названию. Также информацию о значении столбцов в mysql.user вы можете найти в документации по следующей ссылке: https://mariadb.com/kb/en/mysql-user-table/

Все столбцы таблицы mysql.user:

  • Host
  • User
  • Password
  • Select_priv
  • Insert_priv
  • Update_priv
  • Delete_priv
  • Create_priv
  • Drop_priv
  • Reload_priv
  • Shutdown_priv
  • Process_priv
  • File_priv
  • Grant_priv
  • References_priv
  • Index_priv
  • Alter_priv
  • Show_db_priv
  • Super_priv
  • Create_tmp_table_priv
  • Lock_tables_priv
  • Execute_priv
  • Repl_slave_priv
  • Repl_client_priv
  • Create_view_priv
  • Show_view_priv
  • Create_routine_priv
  • Alter_routine_priv
  • Create_user_priv
  • Event_priv
  • Trigger_priv
  • Create_tablespace_priv
  • Delete_history_priv
  • ssl_type
  • ssl_cipher
  • x509_issuer
  • x509_subject
  • max_questions
  • max_updates
  • max_connections
  • max_user_connections
  • plugin
  • authentication_string
  • password_expired
  • is_role
  • default_role
  • max_statement_time

Как вывести все настройки пользователей MySQL/MariaDB

Чтобы вывести полный список пользователей и все их настройки, используйте следующий SQL-запрос. Обратите внимание, что будет выведена очень широкая таблица.

SELECT * FROM mysql.user;


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

SELECT * FROM mysql.user WHERE user = 'root' AND host = 'localhost';

Рекомендуемые статьи:

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *