FAQ по Базам Данных
|
Как завести пользователя и дать ему права |
|
Одним из основных недостатков
MySQL является отсутствие визульных
средств разработки и администрирования.
Так что привыкайте все вводить с консоли,
если хотите работать с этим сервером.
Итак, запускаем консоль MySQL (предполагается,
что сервер уже установлен, настроен и
запущен.) Нам нужно создать нового
ползователя. Можно сделать это двумя
способами.
Первый способ: USE mysql;
INSERT INTO user VALUES ('%','new_user', PASSWORD('somepassw'),
'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
FLUSH PRIVILEGES;
Все данные о пользователях, базах и т.д.
хранятся в MySQL в БД под названием mysql.
Чтобы добавить пользователя, мы просто
добавляем в таблицу новую запись. Первый
значение - это IP-адреса, с которых можно
подключаться к серверу под этим именем
пользователя. Я поставил '%', что значит,
что можно подключаться с любого IP. Можно
указать конкретный IP, и тогда подключение
будет разрешено только с него. Следующие
значения - это имя пользователя и пароль
для него. Обратите внимание: пароль
должен быть зашифрован командой PASSWORD,
иначе пользователь не сможет
подключаться к базе, т.к. сравниваются не
пароли, а резултаты шифрования! В конце
идет перечисление прав (SELECT, INSERT, DELETE, etc).
Эти поля могут иметь только два значения Y
(разрешено) и N (запрещено). В конце не
забудьте выполнить FLUSH PRIVILEGES
для вступления изменений в силу.
Но согласитесь, что способ этот не
очень-то удобный.
Поэтому лучше делать так:GRANT ALL PRIVILEGES ON *.* TO user@"%"
IDENTIFIED BY 'some_passw' WITH GRANT OPTION;
Что же все это означает?
ALL PRIVILEGES -
дает все привилегии пользователю.
Если нужно дать только некоторые
привилегии, их нужно перечислить через
запятую: SELECT, INSERT, и т.д. *.* означает к каким базам
данных и таблицам имеет доступ пользователь.
Обозначения делаются следующим образом
"База.Таблица". user@"%"
- имеет вид "Имя_пользователя@IP-адрес",
т.е. с каких IP может быть установлено
соединение с этим логином (в примере - с
любого IP). С паролем, я думаю, все понятно,
а вот что же такое WITH GRANT OPTION?
Это значит, что пользователь может передать
свои привилегии другому пользователю, т.е.
создать другого пользователя с такими же
правами. Если этой опции нет, то и нового
юзера наш user не сможет :)
Содержание |