Столбец Host допускает следующие значения:
• конкретное имя компьютера или IP-адрес;
• маска подсети (например, 192.168.1.0/255.255.255.0);
• маска имени компьютера или маска IP-адреса, которая может содержать подстановочные символы:
% – на месте знака процента может быть любое количество произвольных символов;
_ – на месте знака подчеркивания может быть ровно один произвольный символ.
...
Примечание
Если маска начинается с цифры или точки, то она рассматривается как маска IP-адреса. Поэтому значение «122.somedomain.com» не соответствует маске «122.%».
В командах, управляющих учетными записями пользователей MySQL, используется идентификатор пользователя – значение первичного ключа учетной записи в формате
\'<���Значение столбца User>\'[@\'<���Значение столбца Host>\']
Например, \'anna\'@\'localhost\'. Если значение столбца Host не указано, подразумевается маска %, так что идентификаторы \'anna\' и \'anna\'@ % эквивалентны.
При подключении пользователя к серверу MySQL происходит идентификация пользователя – поиск соответствующей ему учетной записи. Поиск начинается с тех строк таблицы user, в которых значение столбца Host не содержит подстановочных символов. Поэтому, например, если в таблице зарегистрированы две учетные записи с идентификаторами, соответственно, \'anna\'@ % и \'anna\'@\'localhost\', то при подключении пользователя с именем anna с локального компьютера будет выбрана вторая из них.
После определения учетной записи выполняется аутентификация (проверка подлинности) пользователя, которая заключается в сравнении введенного пользователем пароля с паролем учетной записи, который хранится в столбце Password таблицы user (обратите внимание, что пароли хранятся и передаются только в зашифрованном виде). Если пароль указан правильно, то первый этап контроля доступа завершается успешно и устанавливается соединение клиентского приложения с сервером.
...
Примечание
Имена пользователей и пароли чувствительны к регистру символов, а имена хостов – не чувствительны.
Теперь, изучив особенности идентификации и аутентификации пользователей MySQL, вы можете переходить к регистрации новых пользователей.
Регистрация пользователя
Чтобы создать учетную запись пользователя, выполните команду
CREATE USER <���Идентификатор пользователя> [IDENTIFIED BY [PASSWORD] \'<���Пароль>\'];
Обязательным параметром этой команды является идентификатор нового пользователя. Если не задан параметр IDENTIFIED BY, то будет использоваться пустой пароль. Параметр PASSWORD необходимо указать в том случае, если вы вводите не реальный, а зашифрованный пароль (что позволяет избежать передачи незашифрованного пароля при отправке на сервер команды CREATE USER). Получить зашифрованное значение из реального пароля вы можете с помощью функции
PASSWORD(\'<���Реальный пароль>\')
Например, команда
CREATE USER \'anna\' IDENTIFIED BY \'annapassword\
создает учетную запись для пользователя с именем anna, подключающегося с любого компьютера, и устанавливает для этой учетной записи пароль annapassword. Команда
CREATE USER \'anna\'@\'localhost\' IDENTIFIED BY PASSWORD \'*3C7F72EAE78BC95AAFBFD21F8741C24A0056C04B\
создает учетную запись для пользователя anna, подключающегося с локального компьютера, и устанавливает в качестве пароля значение annalocpassword (поскольку функция PASSWORD(\'annalocpassword\') возвращает значение *3C7F72EAE78BC95AAFBFD21F8741C24A0056C04B).
Сразу после выполнения команды CREATE USER новый пользователь может подключаться к серверу MySQL.
В следующем подразделе мы обсудим, как изменить пароль пользователя, а также как восстановить забытый пароль пользователя root.
Установка пароля
Для установки пароля предназначена команда
SET PASSWORD [FOR <���Идентификатор пользователя>] = PASSWORD(\'<���Пароль>\');
Параметрами этой команды являются идентификатор учетной записи пользователя и новый пароль для этой записи. Если вы не укажете идентификатор пользователя, то измените свой пароль. Вместо функции PASSWORD(), зашифровывающей реальный пароль, можно сразу ввести зашифрованный пароль. Например, команды
SET PASSWORD FOR \'anna\'@\'%\' = PASSWORD(\'newannapassword\');
и
SET PASSWORD FOR \'anna\'@\'%\' = \'*006B99DE1BDA1BE6E1FFF714E764A8FAB0E614DF\
устанавливают пароль newannapassword для пользователя anna, подключающегося с любого компьютера. Эти команды никак не влияют на другие учетные записи, например пароль учетной записи с идентификатором \'anna\'@\'localhost\' не изменится.
Читать дальше
Конец ознакомительного отрывка
Купить книгу