Как узнать пользователей mysql
linux-notes.org
Просмотр привилегий пользователя MySQL
Если вы работаете с базами данных во многопользовательском режиме в MySQL, то я приведу удобные команды которые показывают список всех существующих пользователей MySQL и их привилегии. Чтобы вывести всех пользователей в MySQL и показать их привелегии необходимо войти на сервер MySQL и запустить следующие команды. Сейчас я покажу и расскажу в своей теме «Просмотр привилегий пользователя MySQL» как можно посмотреть пользователей и их привелегии в mysql.
Для начала, необходимо подключится к серверу mysql:
Чтобы получить список пользователей MySQL:
Выше вывод показывает список существующих учетных записей MySQL. Обратите внимание, что учетная запись MySQL имеет две составляющие: пользователя (user) и хост (host). Это позволяет пользователям использовать различные учетные записи MySQL в зависимости от которого host-а они подключаются. Символ «%» интерпретируется как «любой» host (подключение из любого хоста).
Чтобы найти привилегию (и), используйте следующую команду в MySQL:
Как и выше, при указании конкретного аккаунта MySQL для проверки привилегий, используйте имя учетной записи, построенную по имени пользователя и имени хоста используя «@».
Следующей командой можно вывести привелегии полного доступа для пользователя root который подключается к localhost-у:
Чтобы получить список привилегий, используйте любую из следующих команд:
Чтобы посмотреть какие привелегии имеют все пользователи, выполните:
Вот такими командами можно посмотреть какие пользователи имеют те или иные привелегии на сервере с Mysql (MariaDB). На этом, я завершаю свою статью «Просмотр привилегий пользователя MySQL».
Как показать пользователей в MySQL
Эта статья объясняет, как перечислить все учетные записи пользователей на сервере базы данных MySQL через командную строку.
Прежде чем начать
Прежде чем вы начнете эту статью, мы предполагаем, что у вас уже есть MySQL или сервер MariaDB, установленный в вашей системе. Если нет, вы можете легко установить его, следуя одному из руководств ниже:
Все команды будут выполнены внутри оболочки MySQL как пользователь root.
Чтобы получить доступ к оболочке MySQL, введите следующую команду и введите пароль пользователя root MySQL при запросе:
Если вы забыли ваш MySQL пароль root, вы можете сбросить его, следуя этой инструкции.
Показать пользователей в MySQL
Вывод должен выглядеть примерно так:
Учетная запись пользователя в MySQL состоит из имени пользователя и имени хоста.
Вы можете использовать оператор desc mysql.user; для отображения информации о каждом столбце таблицы. Как только вы узнаете имя столбца, запустите запрос по выбранным данным.
Например, чтобы получить список всех учетных записей пользователей 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. Написание технических заданий и инструкций — одна из её главных обязанностей. Её хобби — узнавать что-то новое и создавать интересные и полезные статьи о современных технологиях, веб-разработке, языках программирования и многом другом.
Как показать / вывести список пользователей в MySQL 2021
rytp баÑбоÑÐºÐ¸Ð½Ñ Ð±ÐµÐ· маÑа VIDEOMEGA RU
В этом руководстве объясняется, как перечислить все учетные записи пользователей на сервере базы данных MySQL через командную строку. Мы также покажем вам, как узнать, какие пользователи имеют доступ к данной базе данных.
Прежде чем вы начнете
Мы предполагаем, что в вашей системе уже установлен сервер MySQL или MariaDB.
Все команды выполняются внутри оболочки MySQL от имени пользователя root. Чтобы получить доступ к оболочке MySQL, введите следующую команду и при появлении запроса введите пароль пользователя root MySQL:
Если вы забыли свой корневой пароль MySQL, вы можете сбросить его, следуя этим инструкциям.
Показать всех пользователей MySQL
Чтобы получить список всех учетных записей пользователей MySQL, используйте SELECT чтобы извлечь все строки из таблицы mysql.users :
SELECT User, Host FROM mysql.user;
Вывод должен выглядеть примерно так:
+——————+————+ | user | host | +——————+————+ | root | localhost | | luke | % | | yoda | % | | jabba | 10.10.0.6 | | jabba | 10.10.0.9 | | chewbacca | localhost | | leia | localhost | | han | localhost | +——————+————+ 8 rows in set (0.00 sec)
Учетная запись пользователя в MySQL состоит из двух частей: имени пользователя и имени хоста.
Используйте desc mysql.user; оператор для отображения информации о столбцах таблицы. Как только вы знаете имя столбца, вы можете выполнить запрос к выбранным данным.
Например, чтобы получить список всех учетных записей пользователей MySQL, включая информацию о пароле и о том, активен он или истек, вы должны использовать следующий запрос:
SELECT User, Host, Password, password_expired FROM mysql.user;
+—————-+————+——————————————-+——————+ | User | Host | Password | password_expired | +—————-+————+——————————————-+——————+ | root | localhost | | N | | luke | % | *ADC3B5B27617732CD6320A2DA976258E149A7EC8 | N | | yoda | % | *9550E004046348198A143A115550E1262209FB6F | N | | jabba | 10.10.0.6 | *F91C86B486B945C083B61A05FF6E197560D187EC | Y | | jabba | 10.10.0.9 | | Y | | chewbacca | localhost | *17F2B1E48029294841AD66772BEBB7E6E6A005AF | N | | leia | localhost | *74409C8DB55AC1A6829D801915981C46EDBFC64A | N | | han | localhost | *7B3022FCAEC3534CE67C68322D8AF0C240D95745 | N | +—————-+————+——————————————-+——————+ 8 rows in set (0.00 sec)
Показать пользователей, которые имеют доступ к определенной базе данных
Вы можете запросить таблицу, чтобы узнать, какие пользователи имеют доступ к данной базе данных и уровень привилегий.
Например, чтобы получить список всех пользователей, которые имеют некоторый уровень доступа к базе данных с именем db_name вы должны использовать следующий запрос:
SELECT * FROM mysql.db WHERE Db = ‘db_name’\G;
*************************** 1. row *************************** Host: localhost Db: db_name User: db_user Select_priv: Y Insert_priv: Y Update_priv: Y Delete_priv: Y Create_priv: Y Drop_priv: Y Grant_priv: N References_priv: Y Index_priv: Y Alter_priv: Y Create_tmp_table_priv: Y Lock_tables_priv: Y Create_view_priv: Y Show_view_priv: Y Create_routine_priv: Y Alter_routine_priv: Y Execute_priv: Y Event_priv: Y Trigger_priv: Y 1 row in set (0.00 sec)
Чтобы получить информацию только об учетных записях пользователей, которые имеют доступ к данной базе данных, без отображения привилегий, используйте:
SELECT db, host, user FROM mysql.db WHERE db = ‘db_name’
Следующий запрос покажет вам информацию обо всех базах данных и связанных пользователях:
SELECT db, host, user FROM mysql.db WHERE db = ‘db_name’
+——————+————+————+ | db | host | user | +——————+————+————+ | db_name | localhost | db_user | | ghost_production | localhost | chewbacca | | blog_db | localhost | leia | | linuxize | localhost | han | +——————+————+————+
Вывод
В этом руководстве мы показали, как получить список всех пользователей MySQL и выяснить, какие пользователи имеют доступ к конкретной базе данных.
Не стесняйтесь оставлять комментарии, если у вас есть какие-либо вопросы.
Как вывести список установленных пакетов на centos
В этом руководстве мы покажем вам, как составлять список и фильтровать установленные пакеты в CentOS. Знание того, как составить список установленных пакетов в вашей системе CentOS, может быть полезно в ситуациях, когда вам нужно установить те же пакеты на другом компьютере, или если вы хотите переустановить систему.
Как вывести список установленных пакетов в Debian
В этом руководстве мы объясним, как перечислять и фильтровать установленные пакеты в Debian. Мы также покажем вам, как проверить, установлен ли определенный пакет, посчитать установленные пакеты и узнать версию установленного пакета.
Как показать список всех баз данных в MySQL
При администрировании серверов баз данных MySQL одной из наиболее распространенных задач, которые вам необходимо выполнить, является знакомство со средой. В этом руководстве объясняется, как показать все базы данных на сервере MySQL или MariaDB через командную строку.
Создание пользователей MySQL/MariaDB и предоставление прав доступа
Создание пользователя и выдача прав
Рассмотрим два варианта создания учетных записей в СУБД MySQL/MariaDB.
1. С помощью команды GRANT.
Данный метод позволяет одной командой сразу и создать пользователя, и дать ему права. Но, начиная с MySQL 8, она возвращает ошибку — разработчики запретили ее использование и сначала требуется создать пользователя (с помощью CREATE USER).
> GRANT ON TO [IDENTIFIED BY ] ;
Например, эта команда предоставляет права доступа пользователю и, если его не существует, создает его:
> GRANT ALL PRIVILEGES ON *.* TO ‘dbuser’@’localhost’ IDENTIFIED BY ‘password’ WITH GRANT OPTION;
ALL PRIVILEGES: предоставляет полные права на использование данных.
*.* : права предоставляются на все базы и все таблицы.
dbuser: имя учетной записи.
localhost: доступ для учетной записи будет предоставлен только с локального компьютера.
password: пароль, который будет задан пользователю.
WITH GRANT OPTION: будут предоставлены дополнительные права на изменение структуры баз и таблиц.
2. С помощью команды CREATE USER.
Данный метод является универсальным. Он позволяет создать пользователя в системе без каких либо прав. После права назначаются командой GRANT.
Пример создания учетной записи:
> CREATE USER ‘dbuser’@’localhost’ IDENTIFIED BY ‘password’;
После можно задать права командой:
> GRANT ALL PRIVILEGES ON *.* TO ‘dbuser’@’localhost’;
Посмотреть существующих пользователей и их привилегии
> SELECT user, host FROM mysql.user;
Список привилегий (для кажого пользователя смотряться отдельно):
> SHOW GRANTS FOR ‘root’@’localhost’;
* где ‘root’@’localhost’ — учетная запись, для которой смотрим привилегии; если упустить FOR, команда выдаст результат для пользователя, под которым выполнено подключение к СУБД.
Смена пароля
Команды отличаются в зависимости от версии СУБД.
MySQL
Версия 5.7.6 и более современная:
> ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘New_Password’;
Версия 5.7.5 и древнее:
> SET PASSWORD FOR ‘root’@’localhost’ = PASSWORD(‘New_Password’);
MariaDB
В MariaDB команда для смены пароля одна, независимо от версии:
> SET PASSWORD FOR ‘root’@’localhost’ = PASSWORD(‘New_Password’);
* в данном примере будет задан пароль New_Password для пользователя root.
Смена пароля пользователю root после установки
Для старых версий СУБД и новых процедуры различаются.
Для смены пароля root необходимо выполнить команду в оболочке mysql по инструкции, описанной выше.
MySQL 8 и выше
Пароль создается автоматически при установке системы. Его можно посмотреть командой:
grep ‘password’ /var/log/mysqld.log
Мы увидим что-то на подобие:
2021-08-16T20:14:13.173577Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: oi25?wznro%W
* где oi25?wznro%W — пароль для пользователя root.
Заходим в оболочку sql с помощью данного пароля:
Сброс пароля для root
При необходимости, мы можем сбросить пароль для суперпользователя mysql. Для этого необходимо запустить сервер баз данных в безопасном режиме и ввести команду на смену пароля.
Для начала необходимо остановить сервис:
systemctl stop mysql
systemctl stop mariadb
Создаем каталог /var/run/mysqld и зададим для него нужные права:
chown mysql:mysql /var/run/mysqld
* в некоторых системах данного каталога может не быть, однако, для безопасного режима mysql он необходим.
Запускаем в безопасном режиме СУБД:
Запускаем оболочку sql — система не потребует пароль:
Выполняем запрос FLUSH PRIVILEGES:
Выходим из оболочки:
Уничтожаем процесс, который запустили ранее:
После, запускаем mysql в нормальном режиме:
systemctl start mysql
systemctl start mariadb
Другие примеры
Рассмотрим часто встречаемые операции по работе с пользователями сервера баз данных.
1. Особые права
Предоставление особых прав пользователю:
> GRANT SELECT, UPDATE ON base1.* TO ‘dbuser’@’localhost’ IDENTIFIED BY ‘password’;
* права на выборку и обновление данных во всех таблицах базы 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:
> GRANT ALL PRIVILEGES ON *.* TO ‘dbuser’@’192.168.0.55’ IDENTIFIED BY ‘password’;
* предоставит права пользователю dbuser, который будет подключаться с компьютера с IP-адресом 192.168.0.55.
Мы можем сделать менее жесткое ограничение, разрешив доступ из подсети (особенно удобно при использовании динамических адресов):
> GRANT ALL PRIVILEGES ON *.* TO ‘dbuser’@’192.168.0.%’ IDENTIFIED BY ‘password’;
* в данном примере мы разрешим подключение для любого узла из сети 192.168.0.0/24.
Или мы можем, вовсе, разрешить водключение с любого хоста (не безопасно):
> GRANT ALL PRIVILEGES ON *.* TO ‘dbuser’@’%’ IDENTIFIED BY ‘password’;
3. Права на резервное копирование
Создание учетной записи MySQL с правами создания резервных копий:
> GRANT SELECT, SHOW VIEW, RELOAD, REPLICATION CLIENT, EVENT, TRIGGER, LOCK TABLES ON *.* TO ‘backup’@’localhost’ IDENTIFIED BY ‘backup’;
4. Права доступа к определенной таблице
По сути, это такое же предоставление прав, но с указанием конкретной таблицы после базы:
> GRANT ALL PRIVILEGES ON base1.table1 TO ‘dbuser’@’localhost’ IDENTIFIED BY ‘password’;
* в данном примере предоставлены все права на таблицу table1 в базе base1.
5. Удаление пользователя
Нам может также понадобиться удалить ранее созданного пользователя. Это делается в два этапа:
> REVOKE ALL PRIVILEGES, GRANT OPTION FROM ‘dbuser’@’localhost’;
> DROP USER ‘dbuser’@’localhost’;
* в данном примере мы первой командой отняли все права у пользователя dbuser (localhost) и второй — удалили его.
6. Права на создание других пользователей
Чтобы наш пользователь мог создавать других пользоватлей, задаем права:
GRANT CREATE USER ON *.* TO ‘creator’@’localhost’;
* в данном примере мы даем права учетной записи creator, которая может подключаться к серверу с локального хоста.
Если нужно, чтобы из под данной учетной записи можно было также назначать права, добавим:
GRANT CREATE USER ON *.* TO ‘creator’@’localhost’ WITH GRANT OPTION;
* обратите внимание, что мы просто добавили WITH GRANT OPTION.
Возможные ошибки
1. ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
Причина: в новых версиях по умолчанию активированы политики на проверку сложности пароля. Их список можно посмотреть командой:
> SHOW VARIABLES LIKE ‘validate_password%’;
Вывод команды будет, примерно, следующим:
+—————————————+———+
| 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 |
+—————————————+———+
> 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 и вносит исправления. Применение команды: