Создание удаленных пользователей

Предоставляя пользователю права на подключение к серверу с другого компьютера, необходимо указать хост, с которого он сможет это делать (удаленный клиент). Предположим, что у вас установлена корпоративная сеть, где ваша машина имеет личный IP-адрес 192.168.1.2, доменом является work.ru, а ваш компьютер имеет имя сотр5 (то есть полное имя компьютера — comp5.work.ru). Допустим также, что сервер MySQL запущен на машине сотр5 и в сети есть еще две машины: compl.work.ru — с IP-адресом 192.168.1.4 и comp2.work.ru — с IP-адресом 192.168.1.6.

Пользовательские учетные записи на сервере MySQL (пользователи, или учетные записи MySQL) отличаются от учетных записей на хост-машинах (системные пользователи, или учетные записи в операционной системе).

Если доступ для пользователя ‘kursant’@ ‘localhost’ разрешен, то именно этого правила и придерживается сервер MySQL. Можно подключаться только с localhost. Все остальные подключения, в том числе реальный IP-адрес или домен машины localhost, запрещены. Если вы хотите разрешить доступ с 192.168.1.4 (эквивалентным доменным именем является compl.work.ru), то вам следует подтвердить эти привилегии путем создания нового пользователя с именем kursant и хостом 192.168.1.4. Отметим, что каждая пара пользовательского имени и хоста рассматривается как отдельный пользователь с собственным паролем.

Войдите в монитор как пользователь root и введите следующую команду:

mysql> GRANT ALL ON *.* TO "kursant 192.168.1.4" IDENTIFIED BY 'the_password1;

Query OK, 0 rows affected (0.00 sec)

Вы также можете вместо ip - адреса использовать имя хоста compl.work.ru при условии корректно сконфигурированного сервера доменных имен (DNS — Domain Name Server).

Теперь вы можете запускать монитор MySQL на машине compl.work.ru и подключаться к comp5.work.ru, вводя команду:

mysql --user=kursant --host=comp5.work.ru --password=the_password

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

Your MySQL connection id is 52 to server version: 5.0.22-standard-log Type 'help;' or ' h' for help. Type 'c1 to clear the buffer.

mysql>

Использование IP-адресов 192.168.1.2 для comp5.work.ru и 192.168.1.4 для compl.work.ru обеспечивает большую защиту, поскольку IP-адреса сложнее угадать, чем доменные имена.

До сих пор для каждого IP-адреса мы создавали нового пользователя. Однако на практике этот метод не всегда удобен, поскольку необходимо поддерживать всех пользователей и синхронизировать их привилегии, если доступ с трех компьютеров осуществляется на одном уровне. Тем не менее, данный метод позволяет отличать удаленных пользователей с одним и тем же именем, а так же предлагает гибкую настраиваемую политику при подключении пользователей с удаленных компьютеров.

Рассмотрим другие способы подключения пользователя с разных компьютеров. Например, вы можете позволить пользователю подключаться со всех компьютеров подсети, используя один или несколько групповых символов в инструкции GRANT. Чтобы разрешить пользователю prepoda-vatel подключаться к серверу с любой машины, запустите следующую инструкцию:

mysql> GRANT ALL ON *.* TO 'prepodavatel IDENTIFIED BY 'the_password‘;

Query OK, 0 rows affected (0.01 sec)

Как и в случае с оператором SQL LIKE, групповой символ «%» соответствует любой строке, так что данная запись соответствует любому имени компьютера. В результате будут разрешены подключения для пользователя prepodavatel с любой машины в сети.

Групповые символы можно использовать и в IP-адресах. В качестве примера разрешим подключения со всех машин, разрешив доступ для диапазона IP-адресов 192.168.1.%.

Для этого запустим следующий запрос:

mysql> GRANT ALL ON *.* TO 'labo

rant 192.168.1.%' IDENTIFIED BY 'the_password';

Query OK, 0 rows affected (0.01 sec)

Можно сбросить сразу несколько таблиц, указав их имена в одной инструкции и разделив их запятыми:

mysql> DROP TABLE IF EXISTS temp, tempi, temp2;

Query OK, 0 rows affected, 3 warnings (0.00 sec)

При удалении любых структур необходимо создать резервные копии бызы данных, которые позволят восстановить утраченные данные в результате ошибочных действий.

Контрольные вопросы

  • 1. Какие уровни управления привелегией ALTER?
  • 2. Какие привелегии и уровни в MySQL?
  • 3. Каково назначение привелегии GRANT OPTION?
 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ ОРИГИНАЛ   След >