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

Содержание
  1. Как показать / составить список пользователей в MySQL
  2. Подготовка
  3. Показать всех пользователей MySQL
  4. Показать пользователей, имеющих доступ к конкретной базе данных
  5. Выводы
  6. linux-notes.org
  7. Просмотр привилегий пользователя MySQL
  8. Создание пользователей MySQL/MariaDB и предоставление прав доступа
  9. Создание пользователя и выдача прав
  10. 1. С помощью команды GRANT.
  11. 2. С помощью команды CREATE USER.
  12. Посмотреть существующих пользователей и их привилегии
  13. Смена пароля
  14. MySQL
  15. MariaDB
  16. Смена пароля пользователю root после установки
  17. MySQL mysqladmin -u root password
  18. MySQL 8 и выше
  19. Сброс пароля для root
  20. Другие примеры
  21. 1. Особые права
  22. 2. Удаленное подключение
  23. 3. Права на резервное копирование
  24. 4. Права доступа к определенной таблице
  25. 5. Удаление пользователя
  26. 6. Права на создание других пользователей
  27. Возможные ошибки
  28. Команды MySQL в Linux
  29. Работа с базами, таблицами — просмотр, удаление, редактирование записей. Консоль
  30. Пользователи, пароли сервера MySQL — добавление, изменение пользователей и паролей. Консоль
  31. Резервные копии — создание, восстановление бд . Консоль

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

Вам когда-нибудь нужно было получить список всех пользователей на вашем сервере MySQL? Есть команды для отображения баз данных и таблиц, но нет команды MySQL show users .

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

Подготовка

Мы предполагаем, что в вашей системе уже установлен сервер MySQL или MariaDB.

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

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

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

MySQL хранит информацию о пользователях в таблице с именем user в базе данных mysql .

Чтобы получить список всех учетных записей пользователей MySQL, используйте SELECT для извлечения всех строк из таблицы mysql.users :

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

Приведенная выше команда показывает только два столбца из таблицы mysql.user ( User и Host ). Эта таблица содержит более 40 столбцов, таких как Password , Select_priv , Update_priv и т. Д.

Используйте команду desc mysql.user; оператор для отображения информации о столбцах таблицы. Узнав имя столбца, вы можете запустить запрос к выбранным данным.

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

Показать пользователей, имеющих доступ к конкретной базе данных

Информация о привилегиях уровня базы данных хранится в таблице mysql.db .

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

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

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

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

Выводы

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

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

Источник

linux-notes.org

Просмотр привилегий пользователя MySQL

Если вы работаете с базами данных во многопользовательском режиме в MySQL, то я приведу удобные команды которые показывают список всех существующих пользователей MySQL и их привилегии. Чтобы вывести всех пользователей в MySQL и показать их привелегии необходимо войти на сервер MySQL и запустить следующие команды. Сейчас я покажу и расскажу в своей теме «Просмотр привилегий пользователя MySQL» как можно посмотреть пользователей и их привелегии в mysql.

Читайте также:  Csptest описание команд windows

Для начала, необходимо подключится к серверу mysql:

Чтобы получить список пользователей MySQL:

Выше вывод показывает список существующих учетных записей MySQL. Обратите внимание, что учетная запись MySQL имеет две составляющие: пользователя (user) и хост (host). Это позволяет пользователям использовать различные учетные записи MySQL в зависимости от которого host-а они подключаются. Символ «%» интерпретируется как «любой» host (подключение из любого хоста).

Чтобы найти привилегию (и), используйте следующую команду в MySQL:

Как и выше, при указании конкретного аккаунта MySQL для проверки привилегий, используйте имя учетной записи, построенную по имени пользователя и имени хоста используя «@».

Следующей командой можно вывести привелегии полного доступа для пользователя root который подключается к localhost-у:

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

Чтобы посмотреть какие привелегии имеют все пользователи, выполните:

Вот такими командами можно посмотреть какие пользователи имеют те или иные привелегии на сервере с Mysql (MariaDB). На этом, я завершаю свою статью «Просмотр привилегий пользователя MySQL».

Источник

Создание пользователей MySQL/MariaDB и предоставление прав доступа

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

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

Рассмотрим два варианта создания учетных записей в СУБД 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’);

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

MariaDB

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

> SET PASSWORD FOR ‘root’@’localhost’ = PASSWORD(‘New_Password’);

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

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

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

MySQL mysqladmin -u root password

Для смены пароля 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

Читайте также:  Где mtu у windows

* где 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. Особые права

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

> 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.

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 |
+—————————————+———+

  • validate_password_check_user_name — пароль не должен совпадать с именем пользователя.
  • validate_password_dictionary_file — использовать специальный файл со словарем запрещенных паролей.
  • validate_password_length — минимальная длина пароля.
  • validate_password_mixed_case_count — сколько, как минимум, должно быть символов в малой и большой раскладках.
  • validate_password_number_count — какое минимальное количество цифр использовать в пароле.
  • validate_password_policy — позволяет задать определенный набор правил. Доступны значения LOW (или 0), MEDIUM (1), STRONG (2).
  • validate_password_special_char_count — минимальное количество специальных символов (например, # или !).
  1. Привести пароль в соответствие требованиям политик.
  2. Отключить политику, которая не позволяет использовать желаемый пароль. Например, чтобы отключить требование использовать цифры вводим:
Читайте также:  Командная строка windows 10 полный список команд справочник

> 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 и вносит исправления. Применение команды:

Источник

Команды MySQL в Linux

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

mysql в начале строки означает, что команда выполняется после входа вMySQL.

Символ # или $ в начале строки означает, что команда выполняется из командной строки.

Что бы проверить статус сервера MYSQL выполните:

для FreeBSD:

в CentOS / RHEL:

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

Работа с базами, таблицами — просмотр, удаление, редактирование записей. Консоль

Создать базу данных на MySQL сервере:

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

Отобразить все таблицы в базе данных:

Просмотреть формат таблицы в базе:

Удалить таблицу из базы:

Показать все содержимое таблицы:

Отобразить столбцы и содержимое столбцов в выбранной таблице:

Отобразить строки в определенной таблице, содержащие » whatever «:

Отобразить все записи в определенной таблице, содержащие » Bob » и телефонный номер » 3444444 :

Отобразить все записи, НЕ содержащие имя » Bob » и телефонный номер » 3444444 «, отсортированные по полю phone_number :

Показать все записи, начинающиеся с букв » bob » и телефонного номера » 3444444 » в определенной таблице:

Показать все записи, начинающиеся с букв ‘ bob » и телефонного номера » 3444444 «, ограничиваясь записями с 1-ой до 5-ой:

Использование регулярных выражений ( «REGEXP BINARY» ) для поиска записей. Например, для регистро-независимого поиска — найти все записи, начинающиеся с буквы А :

Показать все уникальные записи:

Показать количество строк в таблице:

Подсчитать количество столбцов в таблице:

Добавление колонки в базу данных:

Изменение имени столбца:

Создать столбец с уникальным именем, что бы избежать дубликатов в названиях:

Изменение размера столбца:

Удаление столбца из таблицы:

Загрузка файла CSV в таблицу:

Пользователи, пароли сервера MySQL — добавление, изменение пользователей и паролей. Консоль

Создание нового пользователя — подключение к серверу MySQL под root, переключение к базе данных, добавление пользователя, обновление привилегий:

Изменений пользовательского пароля из консоли на удаленном хосте db1.example.org :

Изменение пользовательского пароля из консоли MySQL — подключение под root, обновление пароля, обновление привилегий:

Восстановление/изменение пароля root сервера MySQL — остановка MySQL, запуск без таблиц привилегий, подключение под root, установка нового пароля, выход и перезапуск MySQL.

Set a root password if there is on root password.

Обновление пароля root:

Установка права на подключение к серверу с хоста localhost с паролем » passwd » — подключение подroot, переключение к базе данных, установка привилегий, обновление привилегий:

Установка привилегий пользователю на использование базы данных — подключение под root, переключение к базе данных, установка привилегий, обновление привилегий:

Обновление информации в базе данных:

Удаление строки в таблице:

Обновление привилегий в базе данных:

Резервные копии — создание, восстановление бд . Консоль

Создать резервную копию (dump) всех баз данных в файл alldatabases.sql :

Создать резервную копию одной базы данных в файл databasename.sql :

Создать резервную копию одной таблицы в файл databasename.tablename.sql :

Восстановление базы данных (или таблицы) из резервной копии:

Источник

Оцените статью