Как создать пользователя mysql через командную строку linux?

Логинимся под рутом

Пароль невидимый, как всегда.

root ~ # mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 50535903
Server version: 10.3.22-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

Выбираем системную базу данных MySQL

MariaDB [(none)]> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

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

MariaDB [mysql]> CREATE USER 'romasa_i'@'localhost' IDENTIFIED BY 'retY@@th56dE';
Query OK, 0 rows affected (0.003 sec)

Мы создали локального пользователя с именем romasa_i и паролем retY@@th56dE .

localhost здесь — это имя хоста, с которого может подключаться этот пользователь. Вместо localhost может быть доменное имя, IP-адрес, адрес подсети или знак «%», который означает все возможные хосты. То есть вместо @’localhost’ можно было написать: @’%’ . Тогда бы пользователь мог подключиться с любого хоста.

Даём пользователю привилегии к базе данных

MariaDB [mysql]> GRANT ALL PRIVILEGES ON romasa_i.* TO 'romasa_i'@'localhost';
Query OK, 0 rows affected (0.004 sec)

Здесь:

  • ALL PRIVILEGES — все привилегии;
  • romasa_i.* — к базе данных romasa_i, ко всем таблицам (* — значит все таблицы);
  • TO ‘romasa_i’@’localhost’ — для пользователя ‘romasa_i’@’localhost’;

Обновляем привилегии

MariaDB [mysql]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.002 sec)

Смотрим привилегии

MariaDB [mysql]> SHOW GRANTS FOR 'romasa_i'@'localhost';
+-----------------------------------------------------------------------------------------------------------------+
| Grants for romasa_i@localhost                                                                                   |
+-----------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'romasa_i'@'localhost' IDENTIFIED BY PASSWORD '*21C6BAC758F974C18C04C5555555D3EF973F249D' |
| GRANT ALL PRIVILEGES ON `romasa_i`.* TO 'romasa_i'@'localhost'                                                  |
+-----------------------------------------------------------------------------------------------------------------+
2 rows in set (0.000 sec)

Список привилегий

Привилегии перечисляются через запятую, то есть:

GRANT SELECT,INSERT,UPDATE ON romasa_i.* TO 'romasa_i'@'localhost';

даст пользователю привилегии на SELECT,INSERT,UPDATE .

Привилегии бывают:

  • ALL PRIVILEGES — все, кроме GRANT;
  • USAGE PRIVILEGES — никаких привилегий;
  • SELECT — делать выборки из таблиц;
  • INSERT — вставлять данные в таблицу;
  • UPDATE — обновлять данные в таблице;
  • DELETE — удалять данные из таблицы;
  • FILE — разрешает читать файлы на сервере;
  • CREATE — создавать таблицы или базы данных;
  • ALTER — изменять структуру таблиц;
  • INDEX — создавать индексы для таблиц;
  • DROP — удалять таблицы;
  • EVENT — обработка событий;
  • TRIGGER — создание триггеров.

Также доступны такие привилегии администрирования баз данных:

  • GRANT — изменять права пользователей;
  • SUPER — суперпользователь;
  • PROCESS — получение информации о состоянии MySQL;
  • RELOAD — позволяет перезагружать таблицы привилегий;
  • SHUTDOWN — позволяет отключать или перезапускать базу данных;
  • SHOW DATABASES — просмотр списка баз данных;
  • LOCK TABLES — блокирование таблиц при использовании SELECT;
  • REFERENCES — создание внешних ключей для связывания таблиц;
  • CREATE USER — создание пользователей;

Более полная информация: https://losst.ru/sozdanie-polzovatelya-mysql

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии