mysql Пользователями и Права на работу с базами и хостами. Создание и выдача прав
Primary tabs
Forums:
Основные команды
- Посмотреть список всех пользователей:
SELECT User, Host FROM mysql.user;
- Посмотреть какие права выданы для данного пользователя при подключении с данного хоста:
SHOW GRANTS FOR имяпользователя@имяхоста;
например:
SHOW GRANTS FOR root@localhost;
Создание пользователей и выдача им прав на базу
Вот общий вид команд, которые следует выполнять для создания пользователей после подключения к СУБД в командной строке:
(далее приводится 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';
ПРИМЕЧАНИЕ: вместо *.* ("все базы все таблицы") можно указывать конкретную базу ,например:
mybase.*
(т.е. все таблицы базы mybase)
, тогда права будут дана только на неё.
Эти команды 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, который позволяет создавать пользователей без привилегий. Предполагается, что относящиеся к базам данных привилегии будут назначены позже.
Подробности: 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;
Последний пример позволяет исправить такую ошибку.
Источники
- Log in to post comments
- 6562 reads