Логинимся под рутом
Пароль невидимый, как всегда.
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