В mysql пользователь создается командой:
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
где:
username — имя пользователя
host — хост, с которого этот пользователь будет подключаться, % — любой хост или можно указать IP адрес.
password — пароль.
Обычно пользователя создаем чтобы он работал с какой то базой данных, для этого надо дать возможность пользователю доступ к этой базе данных. Делается это следующей командой:
GRANT type_of_permission ON database.table TO 'name'@'host';
Переводится как назначить права (тип прав) но базу данных такую то, таблицу такую то для пользователя с именем и хостом. Т.е. понятно что пользователь у нас идентифицируется не по какому то там ID’шнику, а по имени и хосту.
Где type_of_permission — это набор команд, которые может запускать пользователь в этой базе данных для этой таблицы. Набор команд можно посмотреть на рисунке ниже
database.table — тут выбираем конкретную базу данных и можно указать вместо table звездочку, тогда у пользователя права будут на все таблицы в этой базе данных.
Например если выбрать все галочки, то команда будет такая:
GRANT EXECUTE, SELECT, SHOW VIEW, ALTER, ALTER ROUTINE, CREATE, CREATE ROUTINE, CREATE TEMPORARY TABLES, CREATE VIEW, DELETE, DROP, EVENT, INDEX, INSERT, REFERENCES, TRIGGER, UPDATE, LOCK TABLES ON lorawan.* TO 'user'@'%' WITH GRANT OPTION;
Но можно сделать это проще написав:
GRANT ALL PRIVILEGES ON lorawan.* TO 'user'@'%';
В этом случае будет одно и тоже, пользователю будут даны все права для базы данных. Добавить права вообще на все, можно командой:
GRANT ALL PRIVILEGES ON * . * TO 'user'@'%';
В этом случае у пользователя будут права делать все что хочет в любой базе данных с любой таблицей.
После того как дали доступ пользователю нужно перезагрузить привилегии командой:
FLUSH PRIVILEGES;
Если требуется отозвать права у пользователя:
REVOKE type_of_permission ON database.table FROM 'user'@'%';
Посмотреть, какие права есть у пользователя можно командой:
SHOW GRANTS FOR 'user'@'%';
Вообще удалить пользователя можно командой:
DROP USER 'username'@'localhost';