Як встановити пароль MySQL – основи правильного поводження з БД

34

Від автора: люба, ти кота і нагодувала дитину? А базу даних забула як завжди «нагодувати»! Потім знову будеш мучити мене питанням, як встановити пароль MySQL. Чому? Та тому що вона знову залишиться незаповненою, наковтається всякої «гидоти» з Мережі і заблокується. Потім знову доведеться змінювати пароль!

MySQL – налаштування за замовчуванням

Якщо чесно, я не знаю, чим харчуються бази даних. Але з ними, як і з дитиною, і з котом треба вміти поводитися. Застосовувати правильний підхід, тобто правильно ставити паролі, вчасно створювати резервні копії, дотримуватися правил синтаксису SQL.

З усіх перерахованих правил поводження з «домашніми» базами ми розглянемо сьогодні тільки одне – як задати пароль в MySQL. Але спочатку поговоримо про налаштування за замовчуванням, з якими постачається сервер СУБД.

Відразу після установки MySQL, якщо зайти в системну таблицю user, можна «з жахом» виявити, що для жодної з облікових записів не заданий пароль. З точки зору здорового глузду та елементарних правил безпеки так не повинно бути. Крім того, для посилення рівня захищеності сервера непогано б поставити паролі на більш дрібні структурні елементи, такі як БД і таблиці.

Як встановити пароль MySQL – основи правильного поводження з БД

Насправді розробники СУБД постачають сервери з порожніми значеннями для всіх учеток тільки тому, щоб адміністратор баз даних як можна швидше поставив для користувачів свої паролі, не втрачаючи часу на скасування встановлених заздалегідь.

В MySQL паролі за замовчуванням порожні. Відсутність значення в запиті вказується двома одинарними лапками («).

На практиці

Протягом декількох матеріалів ми розглядали основи адміністрування користувача записів на рівні доступу до сервера. Але MySQL дозволяє для кожної закладки налаштувати доступ конкретно до певної бази даних, таблиці. І навіть має цілу систему привілеїв, завдяки яким ви (як власник облікового запису адміністратора або root) можете дозволяти або забороняти користувачам різні операції на рівні таблиць і баз даних, задавати для них MySQL пароль.

Дані привілеї можна настроїти за допомогою запитів, написаних на SQL, так і через інтерфейс програмних оболонок для адміністрування СУБД. Розглянемо, як реалізована система призначених для користувача привілеїв в програмному інтерфейсі.

Запустіть phpMyAdmin. Потім з головної сторінки додатка перейдіть в розділ «Користувачі», який знаходиться в основному меню зверху. В таблиці «Огляд облікових записів» виберіть будь-яку (поставивши спочатку галочку). Після чого натисніть на посилання «Редагування привілеїв».

У першому пункті появи спливаючого вікна можна налаштувати глобальні привілеї (які операції з даними і структурою дозволено виконувати облікового запису). У наступному розділі вже можна встановити обмеження й дозволи на рівні баз і навіть таблиць.

Як встановити пароль MySQL – основи правильного поводження з БД

Але в рамках цього матеріалу ми не буде заглиблюватися у вивчення системи привілеїв. Залишимо ці «смакоту» на наступний раз. Давайте розглянемо, як встановити в MySQL пароль користувача БД.

Трохи конкретики

В MySQL у вас не вийде поставити доступ до певної БД через пароль для декількох користувачів. Добре це чи погано – судити не нам. У різних ситуаціях ця «аксіома» може стати як перевагою, так і недоліком. Тим не менш, найвразливішою залишається користувацька запис адміністратора СУБД, для якої немає обмежень на редагування всіх баз сервера та зміни їх структури (в тому числі і системної БД mysql).

Але ми відволіклися ,повернемося до нашого «куреня». Давайте з допомогою phpMyAdmin створимо користувача та наделим його всіма привілеями на БД «world».

У списку зліва вибираємо потрібну базу. Потім переходимо в розділ «Привілеї». Нижче таблиці з учетками БД тиснемо на посилання «Додати користувача».

Як встановити пароль MySQL – основи правильного поводження з БД

На жаль після останнього «експерименту» Вован мігрував на інший сервер БД Як встановити пароль MySQL – основи правильного поводження з БД . Тому, як поставити пароль на MySQL, будемо з’ясовувати на ще одному «другане» — Сержа. Він ще той «хлющ», і незрозуміло, як надовго його вистачить. Так що приступимо, поки і той не втік.

У вікні «Додати користувача» заповнюємо всі поля, як показано на наступному скріншоті. Вказуємо ім’я користувача, пароль, локальний хост. Нижче ми наділяємо Сержа повним пакетом привілеїв на БД.

Як встановити пароль MySQL – основи правильного поводження з БД

Тепер перевіримо, як ці привілеї діють. Зайдемо на сервер СУБД з «чорного ходу», тобто через командний рядок:

Запустіть утиліту. Запустіть виконуваний файл сервера БД під учеткой і паролем Сержа (не забудьте в MySQL встановити пароль цього користувача). Код запиту:

Z:\usr\local\mysql-5.5\bin\mysql.exe -u serj –pserj

Як встановити пароль MySQL – основи правильного поводження з БД

Виберіть БД «world» і зробіть з неї вибірку перших 10 рядків таблиці city. Код запитів:

use world;
SELECT * FROM city LIMIT 0,10;

В результаті виконання запитів ми отримали, що очікували. Це говорить про те, що привілеї Сержа діють.

Як встановити пароль MySQL – основи правильного поводження з БД

Але як далеко простягаються «можливості» Сержа. Знаючи поганий характер цього «щигля» краще перестрахуватися і перевірити. Може, доведеться встановити пароль MySQL не тільки на все БД і таблиці, але і на всі рядки. А то «Сержик» всі їх швиденько «свисне» Як встановити пароль MySQL – основи правильного поводження з БД

Спробуємо під його обліковим записом зробити вибірку з іншої БД. Наприклад, db1. Але далеко Сержу просунутися не вдалося: сервер видав системне повідомлення про те, що даний користувач не має ніяких привілеїв на цю базу (в даному випадку права здійснювати з неї вибірку даних).

Як встановити пароль MySQL – основи правильного поводження з БД

Сьогодні ми більш поглиблено вивчили систему привілеїв і ролей, реалізованих СУБД. З усього сказаного можна зробити висновок, що потрібно в MySQL встановлювати пароль для root настільки надійний, наскільки можливо. Хоча з іншого боку, використання схеми аутентифікації БД на основі окремих користувацьких записів має свої плюси. Але розгляд даної теми залишимо для наступних статей. І не забудьте правильно годувати свою базу даних, а то знову «з’їсть» щось не те!