Читаем Основы программирования в Linux полностью

Как видно из предыдущего вывода, теперь у вас есть только один зарегистрированный пользователь, который может подключаться только с машины localhost.

Внимание! Момент истины: можете ли вы в дальнейшем регистрироваться с паролем, который установили? На сей раз вы задаете параметр -p, который сообщает MySQL о необходимости вывести подсказку для ввода пароля:

$ mysql -u root -p

Enter password:

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 7

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

Теперь у вас есть работающая версия MySQL, заблокированная так, что только пользователь root с паролем, установленным вами, может подключиться к серверу базы данных и только с локальной машины. Подключиться к MySQL и ввести пароль вы можете из командной строки. Делается это с помощью параметра, --password, например, --password=secretpassword или -psecretpassword, но ясно, что это небезопасно, потому что пароль можно увидеть с помощью команды ps или просмотра хронологии команды. Однако ввод пароля в командной строке иногда просто необходим, например, если вы пишете сценарии, которым нужно подключаться к базе данных MySQL.

Следующий шаг — добавление пользователя или пользователей, которые нужны. В случае системы Linux, не следует без крайней необходимости использовать учетную запись root для регистрации в базе данных MySQL, лучше создать обычного пользователя для каждодневного применения.

Как мы отмечали ранее, вы можете создать пользователей с различными правами подключения с разных машин; в примере пользователю root из соображений безопасности разрешено подключаться только с локальной машины. В данной главе создадим нового пользователя широкими правами доступа. Rick сможет подключаться тремя разными способами:

 он сможет подключаться с локальной машины;

 он сможет подключаться с любой машины, IP-адрес которой находится в диапазоне от 192.168.0.0 до 192.168.0.255;

 он сможет подключаться с любой машины, входящей в домен wiley.com.

Самый легкий способ сделать это безопасно — создать трех разных пользователей с тремя разными зонами подключения. У этих пользователей по вашему желанию даже могут быть разные пароли, зависящие от того, с какого адреса они устанавливают соединение.

Создать пользователей и присвоить им полномочия можно с помощью команды grant:. Создадим пользователя с тремя только что перечисленными зонами, подключения. Ключевое слово IDENTIFIED BY — немного странная синтаксическая запись для задания начального пароля. Обратите внимание на способ применения кавычек; важно применять символы одинарных кавычек точно так, как показано, иначе вы не сможете создать пользователей, как намечали.

Подключитесь к MySQL как пользователь root и затем выполните следующие действия.

1. Создайте регистрацию входа с локальной машины (login) для пользователя rick.

mysql> GRANT ALL ON *.* TO rick@localhost IDENTIFIED BY 'secretpassword';

Query OK, 0 rows affected (0.03 sec)

2. Затем создайте регистрацию входа с любой машины из подсети класса С 192.168.0. Учтите, что следует использовать одинарные кавычки для защиты IP-диапазона и маску /255.255.255.0 для указания диапазона допустимых IP-адресов.

mysql> GRANT ALL ON *.* TO rick@'192.168.0.0/255.255.255.0' IDENTIFIED BY 'secretpassword';

Query OK, 0 rows affected (0.00 sec)

3. В заключение создайте такую регистрацию входа, чтобы пользователь rick мог зарегистрироваться с любой машины из домена wiley.com (и снова обратите внимание на одинарные кавычки).

mysql> GRANT ALL ON *.* ТО rick@'%.wiley.com' IDENTIFIED BY 'secretpassword';

Query OK, 0 rows affected. (0.00 sec)

4. Опять просмотрите таблицу пользователей, чтобы еще раз проверить все элементы!

mysql> SELECT user, host, password FROM mysql.user;

+------+---------------------------+------------------+

| user | host                      | password         |

+------+---------------------------+------------------+

| root | localhost                 | 2dxf8e8cl7ade6ed |

| rick | localhost                 | 3742g6348q8378d9 |

Перейти на страницу:
Нет соединения с сервером, попробуйте зайти чуть позже