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

Насправді розробники СУБД постачають сервери з порожніми значеннями для всіх учеток тільки тому, щоб адміністратор баз даних якомога швидше поставив для користувачів свої паролі, не втрачаючи часу на скасування встановлених заздалегідь.
В MySQL паролі за замовчуванням порожні. Відсутність значення в запитах вказується двома одинарними лапками ( «).
На практиці
Протягом декількох матеріалів ми розглядали основи адміністрування для користувача записів на рівні доступу до сервера. Але MySQL дозволяє для кожної учеткі налаштовувати доступ конкретно до певної базі даних, таблиці. І навіть має цілу систему привілеїв, завдяки яким ви (як власник облікового запису адміністратора або root) можете дозволяти або забороняти користувачам різні операції на рівні таблиць і баз даних, задавати для них MySQL пароль.
Дані привілеї можна налаштовувати як за допомогою запитів, написаних на SQL, так і через інтерфейс програмних оболонок для адміністрування СУБД. Розглянемо, як реалізована система призначених для користувача привілеїв в програмному інтерфейсі.
Запустіть phpMyAdmin. Потім з головної сторінки програму, знайдіть в розділ «Користувачі», який знаходиться в основному меню зверху. У таблиці «Огляд облікових записів» виберіть будь-яку (поставивши спочатку галочку). Після чого натисніть на лінк «Редагування привілеїв».
У першому пункті з'явився спливаючого вікна можна налаштувати глобальні привілеї (які операції з даними і структурою дозволено виконувати конкретної облікового запису). У наступному розділі вже можна встановити обмеження і дозволу на рівні баз і навіть таблиць.

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

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

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

Виберіть БД «world» і зробіть з неї вибірку перших 10 рядків таблиці city. Код запитів:
В результаті виконання запитів ми отримали, що очікували. Це говорить про те, що привілеї Сержа діють.

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

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