Для случаев, когда могут потребоваться более жесткие ограничения, есть способы создания пользователей с особыми наборами прав доступа.
Авторизируемся в консоль mysql
| 
					 1  | 
						mysql -u root -p  | 
					
Создания нового пользователя из консоли MySQL:
| 
					 1  | 
						CREATE USER 'username'@'localhost' IDENTIFIED BY 'newpass';  | 
					
К сожалению, на данном этапе пользователь «newuser» не имеет прав делать что-либо с базами данных. На самом деле, даже если если пользователь «newuser» попробует залогиниться (с паролем «password»), он не попадет в консоль MySQL.
Таким образом, первое, что нам необходимо сделать, это предоставить пользователю доступ к информации, которая ему потребуется.
| 
					 1  | 
						GRANT ALL PRIVILEGES ON * . * TO 'username'@'localhost'IDENTIFIED BY 'newpass';  | 
					
Звездочки в этой команде задают базу и таблицу, соответственно, к которым у пользователя будет доступ. Конкретно эта команда позволяет пользователю читать, редактировать, выполнять любые действия над всеми базами данных и таблицами.
Поле завершения настройки прав доступа новых пользователей, убедитесь, что вы обновили все права доступа:
| 
					 1  | 
						FLUSH PRIVILEGES;  | 
					
Теперь ваши изменения вступят в силу.
Как назначить различные права доступа
Ниже представлен короткий список некоторых возможных вариантов прав доступа, которые могут получить пользователи:
- ALL PRIVILEGES — как мы видели ранее, это даст пользователю MySQL полный доступ к заданной базе данных (если база данных не указана, то ко всем).
 - CREATE — позволяет создавать новые таблицы или базы данных.
 - DROP — позволяет удалять таблицы или базы данных.
 - DELETE — позволяет удалять строки из таблиц.
 - INSERT — позволяет добавлять строки в таблицу.
 - SELECT — поволит использовать команду Select для чтения из баз данных.
 - UPDATE — позволит редактировать строки таблиц.
 - GRANT OPTION — позволит назначать или удалять права доступа для других пользователей.
 
Для назначения прав конкретному пользователю можно использовать следующую схему:
| 
					 1 2 3  | 
						GRANT [тип прав] ON [название базы данных].[название таблицы] TO ‘[имя пользователя]’@'localhost’; GRANT ALL PRIVILEGES ON `db_name` . * TO 'user_name'@'localhost' IDENTIFIED BY 'password';  | 
					
Если вы хотите дать доступ к любой базе данных или к любой таблице, поставьте звездочку (*) вместо названия базы данных или таблицы.
Каждый раз, когда вы изменяете права доступа, не забудьте использовать команду Flush Privileges.
Лишения прав доступа практически идентично их назначению:
| 
					 1 2  | 
						REVOKE [тип прав] ON [название базы данных].[название таблицы] FROM ‘[имя пользователя]’@‘localhost’;  | 
					
По аналогии с использованием команды DROP для удаления базы данных, вы можете использовать эту команду и для удаления пользователя.
| 
					 1 2  | 
						DROP USER 'username'@‘localhost’;  | 
					
Для тестирования учетной записи созданного пользователя, разлогиньтесь с помощью команды:
| 
					 1  | 
						quit  | 
					
**************************************************************************
Создание пользователя mysql «смотрящего наружу»:
| 
					 1 2 3 4 5 6  | 
						mysql> CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass'; mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'     ->     WITH GRANT OPTION; mysql> CREATE USER 'monty'@'%' IDENTIFIED BY 'some_pass'; mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'     ->     WITH GRANT OPTION;  | 
					
| 
					 1  | 
						FLUSH PRIVILEGES;  | 
					
**************************************************************************
Примеры использования CREATE DATABASE
Следущий пример создает базу данных «my_db»:
| 
					 1  | 
						CREATE DATABASE `my_db`  | 
					
или
| 
					 1  | 
						CREATE DATABASE `my_db` CHARACTER SET utf8 COLLATE utf8_general_ci;  | 
					
Для того, чтобы посмотреть настройки уже существующей базы данных необходимо выполнить оператор SHOW CREATE DATABASE
mysql> SHOW CREATE DATABASE test;
+———-+——————————————————————+
| Database | Create Database |
+———-+——————————————————————+
| test | CREATE DATABASE test /*!40100 DEFAULT CHARACTER SET latin1 */ |
+———-+——————————————————————+
1 row in set (0.02 sec)