mysql Создать пользователя и дать права на базу

Forums:

Общая теория (кратко)

Вот общий вид команд, которые следует выполнять для создания пользователей после подключения к СУБД в командной строке:

(далее приводится 4-ре команды для создания 3-х пользователей, для 1ого пользователя отделельно указываются правила для подлючения с локального хоста и с остальных адресов)

 
mysql> GRANT ALL PRIVILEGES ON *.* TO monty@'localhost'
	IDENTIFIED BY 'some_pass' WITH GRANT OPTION;

mysql> GRANT ALL PRIVILEGES ON *.* TO monty@"%"
	IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
	
mysql> GRANT RELOAD,PROCESS ON *.* TO admin@'localhost';


mysql> GRANT USAGE ON *.* TO dummy@'localhost';

Эти команды GRANT создают трех новых пользователей:

  1. monty
    Полноценный суперпользователь - он может подсоединяться к серверу откуда угодно, но должен использовать для этого пароль some_pass. Обратите внимание на то, что мы должны применить операторы GRANT как для monty@localhost, так и для monty@"%". Если не добавить запись с localhost, запись анонимного пользователя для localhost, которая создается при помощи mysql_install_db, будет иметь преимущество при подсоединении с локального компьютера, так как в ней указано более определенное значение для поля Host, и она расположена раньше в таблице user.
  2. admin
    Пользователь, который может подсоединяться с localhost без пароля; ему назначены административные привилегии RELOAD и PROCESS. Эти привилегии позволяют пользователю запускать команды mysqladmin reload, mysqladmin refresh и mysqladmin flush-*, а также mysqladmin processlist. Ему не назначено никаких привилегий, относящихся к базам данных (их можно назначить позже, дополнительно применив оператор GRANT).
  3. dummy
    Пользователь, который может подсоединяться к серверу без пароля, но только с локального компьютера. Все глобальные привилегии установлены в значение 'N'-тип привилегии USAGE, который позволяет создавать пользователей без привилегий. Предполагается, что относящиеся к базам данных привилегии будут назначены позже.

Подробности: http://www.mysql.ru/docs/man/Adding_user...

Примеры

Дадим все права + право подключения с локалхост:

GRANT ALL PRIVILEGES ON *.* TO myuser@'localhost'
         IDENTIFIED BY '12345' WITH GRANT OPTION;

Все права + подключение из диапазона ip (в примере ниже локальный диапазон):

GRANT ALL PRIVILEGES ON *.* TO myuser@'192.168.%.%'
         IDENTIFIED BY '12345' WITH GRANT OPTION;

Последний пример позволяет исправить такую ошибку.