|
|
Хто і звідки може під'єднуватися до серверу
|
|
|
Адміністратор може дозволити користувачу під'єднуватися як з певного комп'ютера, так і з різних комп'ютерів. В першому випадку, якщо точно відомо, що користувачі під'єднуватимуться тільки з своїх комп'ютерів, можна надати їм такий доступ за допомогою наступних операторів:
GRANT ALL ON sampdb.* TO boris@localhost IDENTIFIED BY 'ruby'
GRANT ALL ON sampdb.* TO [email protected] IDENTIFIED BY 'quartz'
Якщо частина username або hostname значення асcount не містить таких спеціальних символів, як '-' або '%', його необов'язково брати в лапки (наприклад, таке ім'я, як boris@localhost, буде допустимим і без лапок). Проте безпечніше використовувати лапки, і в прикладах, приведених в цій книзі, це, як правило, робиться. Але зверніть увагу, що частини username і hostname беруться в лапки по окремості 'boris'@'localhost', а не повністю, як 'boris@localhost'.
У разі потреби можна також дозволити користувачу під'єднуватися з одного комп'ютера. Іншою крайністю є дозвіл користувачу, який багато подорожує, під'єднуватися з будь-якого комп'ютера, розташованого в будь-якій точці світу. Для того, щоб дозволити користувачу max робити підключення звідусіль, необхідно скористатися оператором GRANT наступного вигляду:
GRANT ALL ON sampdb.* TO 'max'@'%' IDENTIFIED BY 'diamond'
Символ "%" замінює всі можливі значення адрес і виконує ту ж функцію, що і при порівнянні з допомогою оператора LIKE. В попередньому прикладі його можна умовно замінити фразою "будь-який комп'ютер". Установка символу "%" аналогічна простому опусканню частини, заданої комп'ютером. Це найпростіший але й найнебезпечніший спосіб створити користувача.
При необхідності можна також дозволити користувачу підключатися з обмеженого числа комп'ютерів. Так, щоб користувач mагу міг підключатися з комп'ютерів домену snake.net, достатньо скористатися специфікатором %.snake.net:
GRANT ALL ON sampdb.* TO 'mагу'@'%.snake.net' IDENTIFIED BY 'topaz'
Інший груповий символ LIKE ('_') може бути використаний в значеннях вузлів, які співпадають з будь-яким одиничним символом.
Для визначення комп'ютера можна застосовувати не тільки імена, але й IP-адреси. Ці адреси можна задавати як явно, так і за допомогою допоміжних символів. Крім того, у версії MySQL 3.23 з'явилася можливість визначати IP-адреси, задаючи маску мережі, встановлюючи число розрядів в мережевому номері:
GRANT ALL ON sampdb.* TO 'joe'@'192.168.128.3' IDENTIFIED BY 'water'
GRANT ALL ON sampdb.* TO [email protected].% IDENTIFIED BY 'snow'
GRANT ALL ON sampdb.* TO [email protected]/17 IDENTIFIED BY 'ice'
Перший оператор визначає тільки один комп'ютер, з якого може під'єднатися користувач joe. Другий визначає набір IP-адрес для підмережі класу C 192.168.128. В третьому операторі частина 192.168.128.0/17 визначає 17-розрядний мережевий номер і відповідає будь-якому комп'ютеру з адресою 192.168.128 в перших 17 розрядах ІР-адреси.
Застосування імені комп'ютера localhost в операторі GRANT дозволить під'єднатися користувачу до серверу з локального вузла, задавши значення host, таке як localhost або 127.0.0.1 (IP-адреса локального вузла). Обліковий запис localhost відповідає підключенню з вказаним іменем вузла, рівного точці ".", якщо даний сервер підтримує іменовані канали. Під UNIX підключення до localhost проводиться завдяки файлу роз'єму UNIX. Під управлінням ОС Windows NT з'єднання з "." проводяться через іменований канал, якщо такі використовуються. Всі решта з'єднань проводиться через TCP/IP, включаючи з'єднання з 127.0.0.1.
Відсутність частини host в специфікації облікового запису аналогічно використанню ' %'. Іншими словами, еквівалентними значеннями асcount в даному прикладі будуть записи max і 'max'@'%' в операторі GRANT. Це значить, що, написавши специфікацію 'boris@localhost' замість 'boris'@'localhost', з погляду MySQL ви не скоюєте ніякої помилки. Все, що відбудеться, - це те, що MySQL проінтерпретує значення 'boris@localhost' як те, що містить тільки призначену для користувача частину і додасть до неї стандартну вузлову частину, рівну '%' В результаті цього отримаємо ім'я 'boris@localhost'@'%'. Для того щоб уникнути таких колізій, беріть в лапки призначену і вузлову для користувача частини окремо.
|
|
Книга Фріланс на західному ринку
|
|