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