Для начала - немного отсюда:
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 refres
h и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;