Для начала - немного отсюда:
shell> mysql --user=root mysql
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 создают трех новых пользователей:monty- Полноценный суперпользователь - он может подсоединяться к серверу откуда угодно, но должен использовать для этого пароль
some_pass. Обратите внимание на то, что мы должны применить операторыGRANTкак дляmonty@localhost, так и дляmonty@"%". Если не добавить запись сlocalhost, запись анонимного пользователя дляlocalhost, которая создается при помощиmysql_install_db, будет иметь преимущество при подсоединении с локального компьютера, так как в ней указано более определенное значение для поляHost, и она расположена раньше в таблицеuser. admin- Пользователь, который может подсоединяться с
localhostбез пароля; ему назначены административные привилегииRELOADиPROCESS. Эти привилегии позволяют пользователю запускать командыmysqladmin reload,mysqladmin refresh иmysqladmin flush-*, а такжеmysqladmin processlist. Ему не назначено никаких привилегий, относящихся к базам данных (их можно назначить позже, дополнительно применив операторGRANT). dummy- Пользователь, который может подсоединяться к серверу без пароля, но только с локального компьютера. Все глобальные привилегии установлены в значение
'N'-тип привилегииUSAGE, который позволяет создавать пользователей без привилегий. Предполагается, что относящиеся к базам данных привилегии будут назначены позже. - GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,EXECUTE,ALTER on бд.* TO пользователь@localhost IDENTIFIED BY 'пароль';
- Подробнее о GRANT - тут
- После создания dummy, надо дать ему права с помощью GRANT:
Посмотреть всех пользователей можно так:
select User from mysql.user;