Создать юзера mysql linux

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

Создать юзера mysql linux

MySQL является одной из самых популярных систем управления базами данных. В этом руководстве мы рассмотрим шаги, необходимые для создания нового пользователя MySQL и дадим ему права доступа в CentOS, Debian или Ubuntu.

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

Вам будет предложено ввести пароль для root пользователя.

Создание нового пользователя

Вы можете создать нового пользователя MySQL с помощью следующей команды:

  • user — имя пользователя MySQL, который будет создан
  • password — пароль, который мы хотим присвоить этому пользователю.

Все команды MySQL выполняются с точкой с запятой ( ; ).

Предоставление прав доступа для пользователя

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

  • database — название базы в MySQL, к которой мы предоставляем доступ.
  • table — название таблицы БД, к которой мы предоставляем доступ

Вы можете использовать символ звездочки (*), если захотите предоставить доступ ко всем базам данных/таблицам:

С помощью первой команды мы предоставляем пользователю user все права доступа ко всем таблицам, относящимся к базе данных с именем database . Во втором случае, для пользователя предоставляется доступ ко всем базам данных.

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

Вот список наиболее часто используемых привилегий MySQL:

  • ALL PRIVILEGES — пользователь имеет полный доступ к базе данных.
  • CREATE — пользователю разрешено создавать базы данных и таблицы.
  • DROP — пользователь имеет право удалять базы данных и таблицы.
  • DELETE — пользователь может удалять строки из определенной таблицы.
  • INSERT — пользователь может вставлять строки в определенную таблицу.
  • SELECT — пользователю разрешено читать базу данных.
  • UPDATE — пользователь может обновлять строки таблицы.

Вот пример синтаксиса, в котором только три типа привилегий предоставляются пользователю:

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

Вот ещё несколько примеров:

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

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

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

Отображение привилегий пользователя

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

Отмена привилегий у пользователя MySQL

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

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

Удаление существующей учетной записи пользователя MySQL

Чтобы удалить учетную запись пользователя MySQL, используйте оператор DROP USER :

Вышеприведенная команда удалит учетную запись пользователя и его привилегии.

Заключение

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

Читайте также:  Анимационные рабочие столы для windows 10

Источник

Как создать пользователя mysql

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

Коротко о базе данных MySQL

Представляет собой реляционную СУ базами данных. Создана посредством языков программирования С и С++. Служит прекрасным инструментом для оптимизации работы веб-ресурсов и приложений.

Чтобы новичку было проще понять, что такое база данных, приведет элементарный пример. Пользователю нужно найти изображение в телефоне. Для этого он открывает Галерею. В данном случае картинка – это данные, а Галерея – база данных.

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

Ведение веб-ресурса без базы данных – весьма трудоёмкий и нерациональный процесс. С помощью БД можно грамотно структурировать информацию и заполучить к ней быстрый доступ.

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

Система управления БД MySQL особенно приходится по душе тем, кто любит упорядочивать информацию в табличном виде. Стоит выполнить запрос, и информация извлекается из таблиц. Информация, имеющаяся в таблицах, строго упорядочена. Расположение строк напрямую зависит от данных, размещенных в таблице – при необходимости оно может видоизменяться.

Процесс заполнения таблиц обеспечивает SQL (язык программирования).

Чем может MySQL:

  1. Быстрый доступ к информации;
  2. Быстрая обработка информации;
  3. Надежная защита данных;
  4. Бесплатное пользование;
  5. Понятный интерфейс;
  6. MySQL совместим с ОС Windows и Linux;
  7. Есть шифрование личных данных (паролей).

А теперь перейдем от теории к практике.

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

Начнем с того этапа, когда БД уже создана. Теперь пользователю необходимо запустить клиент БД. Для этих целей удобнее всего воспользоваться терминалом.

Заходим в косоль mysql от имени root.

ВАЖНО! Если Вы уже залогинлись по root, достаточно ввети команду без параметров — mysql

После этого можно приступать к реализации главной идеи. То есть, добавление нового юзера посредством CREATE USER. Ниже мы распишем синтаксис этой команды.

CREATE USER ‘имя_пользователя’@’хост’ IDENTIFIED BY ‘пароль для пользователя’;

Следуя вышеуказанному синтаксису, юзеру необходимо задать следующую информацию: имя пользователя и тот хост, откуда можно пройти авторизацию. В текущей ситуации указание символа «%» – способ обозначения всех возможных хостов.

Теперь разберем, как создать нового локального юзера через терминал. Просто вводим в строке текст следующего вида:

CREATE USER ‘new_user’@’localhost’ IDENTIFIED BY ‘parol’;

Соответственно, чтобы добавить юзера, доступ к которому появится со всевозможных хостов, нужно поменять в команде «localhost» на «%», как это уже упоминалось ранее.

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

SELECT User,Host FROM mysql.user;

Как дать права пользователю

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

GRANT привилегии ON база_данных . таблица ТО ‘имя_пользователя’@’хост’;

Какие права назначать пользователю системы – вопрос индивидуальный. Каких-либо чётких рекомендаций здесь быть не может. Единственное, о чем стоит упомянуть, так это о предоставлении всех прав над базой данных. Возможно, кому-то подойдет именно такой вариант. Как это сделать? Рассмотрим ниже.

GRANT ALL PRIVILEGES ON test_database . * TO ‘new_user’@’localhost’;

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

SHOW GRANTS FOR ‘new_user’@’localhost’;

На этом еще не всё! После выполненных действий крайне важно произвести обновление таблицы прав пользователей. Это делается так:

Пользователями с правами root mysql

Рассмотрим еще один вероятный сценарий развития событий. На тот случай, если кому-нибудь понадобится создать пользователя с правами root MySQL. Потребуется еще раз воспользоваться терминалом для реализации задуманного:

Читайте также:  Критические ошибки windows 0x000000c2

Итак, водим текст такого вида:

GRANT ALL PRIVILEGES ON * . * TO ‘new_user’@’localhost’;

Теперь пользователь имеет все необходимые привилегии. Однако остаётся маленькая загвоздка. Она заключается в отсутствии возможности предоставлять права другим пользователям от имени этого юзера. Текущая проблема может быть решена так:

GRANT ALL PRIVILEGES ON * . * TO ‘new_user’@’localhost’ WITH GRANT OPTION;

Готово! Суперпользователь MySQL добавлен, все необходимые привилегии предоставлены.

Заключение

Инструкция по созданию пользователя MySQL, предоставленная в данном материале, актуальна для Ubuntu и других дистрибутивов Debian, Centos.

Источник

Создание пользователей 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

* где 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 он необходим.

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

Читайте также:  Windows system programming code

Запускаем оболочку 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. Отключить политику, которая не позволяет использовать желаемый пароль. Например, чтобы отключить требование использовать цифры вводим:

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

Источник

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