Як створити та керувати користувачами MySQL

by Alejandro Granata
Як створити та керувати користувачами MySQL thumbnail

Уявіть бібліотеку, де будь-хто може у будь-який час вносити зміни до книг.

Ви заходите перевірити Володар Перснів, але раптом, замість безсмертної історії про дружбу та мужність у лиці всепоглинаючого зла, все виявляється з точністю до навпаки.

Хтось переписав героїчну подорож Фродо та Сема до Мордору, змусивши їх відмовитися від порятунку Середзем’я та натомість відкрити ювелірний магазин у Брі. Їхній перший клієнт? Саурон. І уявіть собі, він шукає кільце.

Що стосується Арагорна, Леголаса та Гімлі? Скажімо так, той хто редагував історію, дуже захоплюється фанфіками. Залишимо це при собі.

Ваш вебсайт подібний до бібліотеки, а база даних, яка його забезпечує, подібна до всіх книг у ній. Якщо ви дозволите майже будь-кому зайти та внести зміни, це може перетворитися на ситуацію з переписом Володаря перстнів — але набагато гірше, оскільки це може поставити під загрозу весь ваш сайт (та всі його дані).

Глосарій DreamHost

База даних

База даних — це зібрання інформації, доступне для комп’ютерів. Бази даних використовуються для зберігання такої інформації, як записи клієнтів, каталоги продуктів та фінансові транзакції.

Читати далі

Ось чому ви маєте контролювати, хто може бачити, отримувати доступ та змінювати ваші дані, щоб забезпечити безпеку вашого сайту та його стабільну роботу.

Цей пост допоможе вам ознайомитися з основами управління користувачами MySQL, від створення облікових записів користувачів до встановлення та зміни дозволів.

Готові розпочати? Розпочати!

Що таке база даних MySQL?

MySQL база даних – це структурована колекція даних, яка зберігається в електронному вигляді та керується за допомогою системи управління базами даних MySQL (DBMS).

MySQL, відкрита система управління реляційними базами даних, використовує мову структурованих запитів (SQL) для доступу, управління та маніпулювання даними.

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

MySQL відомий своєю надійністю та простотою використання. Веб-розробники в різних галузях використовують його для веб-додатків, додатків для реєстрації, сховищ даних та багато іншого. Чи зберігаєте ви інформацію про користувачів, каталоги продуктів чи записи транзакцій, MySQL є міцним та масштабованим і, ймовірно, може задовольнити ваші потреби у керуванні базами даних.

Професійна порада: Потрібно мігрувати або підключити базу даних MySQL до вашого сайту DreamHost? Знайдіть простий у використанні посібник у нашій Базі знань.

Отримуйте вміст безпосередньо у свою скриньку

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

Пояснення користувацьких облікових записів MySQL

Облікові записи користувачів MySQL є необхідними для управління доступом до вашої бази даних. Кожен обліковий запис користувача в MySQL може мати певні дозволи, які визначають, які дії може виконувати користувач. Це деталізоване керування допомагає підтримувати безпеку та цілісність ваших даних.

Роль користувача Root

Коли ви вперше встановлюєте MySQL, створюється обліковий запис за замовчуванням під назвою root.

Користувач Root має повні адміністративні привілеї, що означає, що він може виконувати будь-яку дію в базі даних, включаючи створення та видалення баз даних, додавання та видалення користувачів, а також надання або анулювання дозволів.

Хоча користувач Root є потужним, ми не рекомендуємо покладатися лише на цей обліковий запис для всіх завдань. Використання облікового запису Root для повсякденних операцій становить значний ризик для безпеки.

Якщо хтось отримає несанкціонований доступ до цього акаунту, він отримає контроль над вашою базою даних.

Діаграма облікових записів користувачів MySQL, яка показує Root User, Developer, Administrator, і New User, підключених до блоків баз даних MySQL.

Чому створювати нових користувачів?

Для кращої безпеки та вдосконалення управління базами даних, найкращою практикою є створення специфічних користувацьких облікових записів для різних цілей.

Наприклад, ви можете створити окремі облікові записи для розробників, адміністраторів та процесів додатків, надаючи кожному типу облікового запису лише необхідні дозволи, які вони потребують для виконання своїх завдань. Таким чином, ви мінімізуєте ризик випадкових або зловмисних дій, які могли б вплинути на цілісність та безпеку вашої бази даних.

Створення нових облікових записів користувачів дозволяє вам:

  • Покращення безпеки бази даних та сайту: Обмежте доступ до конфіденційних даних та критичних операцій, надаючи необхідні права лише кожному користувачу.
  • Краща організація ролей: Чітко визначте ролі та обов’язки в межах вашої команди, надаючи кожному належний рівень доступу до завдань, які вони мають виконувати.
  • Спрощення управління вашою базою даних: Легко відстежуйте та управляйте діяльністю користувачів, що спрощує аудит змін та ідентифікацію проблем.

Як керувати користувачами MySQL (два методи)

Ми розглянемо два основні методи управління вашими користувачами MySQL: безпосередньо через MySQL та за допомогою панелі DreamHost. В кінцевому підсумку, метод, який ви виберете, залежатиме від вашого рівня комфорту з інструментами командного рядка та ваших специфічних вимог.

Керування користувачами MySQL

Щоб керувати користувачами MySQL безпосередньо через MySQL, вам потрібно мати встановлений MySQL на вашій системі.

Це включає завантаження програмного забезпечення MySQL з офіційного сайту MySQL, його встановлення та налаштування відповідно до вимог вашої операційної системи.

Після встановлення ви можете взаємодіяти з вашою базою даних MySQL за допомогою командного рядка MySQL.

Nerd Note: Більшість з наступних команд може використовуватися лише на виділених серверах. Ви можете дізнатися більше в нашій Базі знань.

Сторінка завантажень спільноти MySQL, яка показує опції MySQL Installer 8.0.37 для Windows, з посиланнями на завантаження та деталями файлів.

Щоб встановити MySQL, виконайте ці кроки:

  1. Відвідайте офіційний сайт MySQL, завантажте інсталятор та слідуйте інструкціям з інсталяції для вашої операційної системи (Windows, macOS або Linux).
  2. Після інсталяції вам потрібно налаштувати сервер MySQL для встановлення початкових облікових записів користувачів та налаштувань безпеки.
  3. Використовуйте Термінал (на macOS та Linux) або командний рядок (на Windows) для доступу до інтерфейсу командного рядка MySQL, введіть команду mysql -u root -p, за якою слід ваш пароль root.

Як тільки ви налаштуєте MySQL, ви зможете створювати, керувати та видаляти користувацькі облікові записи за допомогою команд SQL.

Цей метод надає вам високий рівень контролю та гнучкості, але він вимагає від вас знання синтаксису SQL та операцій з командним рядком (про що ми детальніше розповімо нижче).

Як створити обліковий запис користувача MySQL

  1. Увійдіть в сервер MySQL як користувач Root. Введіть наступну команду: mysql -u root -p.
  2. Вам буде запропоновано ввести пароль Root. Після аутентифікації ви підключитесь до сервера MySQL.
  3. Щоб створити нового користувача, використовуйте команду CREATE USER. Замініть newuser на бажане ім’я користувача та password на надійний пароль для нового користувача: CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
  4. Ця команда створює нового користувача, який може підключатися тільки з локальної машини (localhost). Якщо ви хочете, щоб користувач міг підключатися з будь-якого хоста, замініть localhost на %.
  5. Щоб застосувати зміни, виконайте команду FLUSH PRIVILEGES: FLUSH PRIVILEGES;

Нотатка для гіків: Кожного разу, коли пароль присвоюється через командний рядок, корисно очистити історію терміналу, щоб зменшити ризик того, що хтось натрапить на пароль.

Як надати привілеї користувачу MySQL

  1. Увійдіть на сервер MySQL як користувач Root. Введіть наступну команду: mysql -u root -p.
  2. Введіть ваш пароль Root для підключення до сервера MySQL.
  3. Використовуйте команду GRANT для надання специфічних привілеїв користувачу. Привілеї можуть бути надані для конкретних баз даних, таблиць або навіть колонок. Ось деякі поширені приклади:
    1. Надання всіх привілеїв на конкретну базу даних (Ця команда надає всі привілеї на базу даних exampledb користувачу newuser, який підключається з localhost): GRANT ALL PRIVILEGES ON exampledb.* TO 'newuser'@'localhost';
    2. Надання конкретних привілеїв на конкретну базу даних (Ця команда надає лише привілеї SELECT, INSERT, і UPDATE на базу даних exampledb користувачу newuser, який підключається з localhost): GRANT SELECT, INSERT, UPDATE ON exampledb.* TO 'newuser'@'localhost';
    3. Надання всіх привілеїв на всі бази даних (Ця команда надає всі привілеї на всі бази даних користувачу newuser, який підключається з localhost. Опція WITH GRANT OPTION дозволяє користувачу надавати привілеї іншим користувачам): GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'localhost' WITH GRANT OPTION;
    4. Надання привілеїв на конкретні таблиці (Ця команда надає привілеї SELECT і INSERT на таблицю exampletable у базі даних exampledb користувачу newuser): GRANT SELECT, INSERT ON exampledb.exampletable TO 'newuser'@'localhost';
  4. Для застосування змін використовуйте команду FLUSH PRIVILEGES: FLUSH PRIVILEGES;

Як переглянути привілеї для користувача MySQL

  1. Увійдіть на сервер MySQL як користувач root. Введіть наступну команду: mysql -u root -p.
  2. Введіть свій пароль root для підключення до сервера MySQL.
  3. Команда SHOW GRANTS використовується для відображення привілеїв, наданих конкретному користувачу. Щоб побачити привілеї для певного користувача, використовуйте наступну команду, замінивши newuser на ім’я користувача та localhost на хост, з якого користувач підключається: SHOW GRANTS FOR 'newuser'@'localhost';
  4. Уважно перегляньте перелік привілеїв, щоб переконатися, що користувач має правильні дозволи. Якщо потрібно внести корективи, ви можете змінити привілеї користувача за допомогою команд GRANT або REVOKE, про які ми розповімо в наступних розділах.

Як змінити права доступу для користувача MySQL

  1. Увійдіть на сервер MySQL як користувач root. Введіть наступну команду: mysql -u root -p.
  2. Введіть свій пароль root для підключення до сервера MySQL.
  3. Для надання додаткових привілеїв користувачу, використовуйте команду GRANT. Наприклад, для надання привілеїв UPDATE на базу даних exampledb для користувача newuser, що підключається з localhost, використайте: GRANT UPDATE ON exampledb.* TO 'newuser'@'localhost';
  4. Для видалення певних привілеїв у користувача, використовуйте команду REVOKE. Наприклад, для відкликання привілею INSERT на базу даних exampledb від користувача newuser, що підключається з localhost, використайте: REVOKE INSERT ON exampledb.* FROM 'newuser'@'localhost';
  5. Після використання команд GRANT або REVOKE, не забудьте застосувати зміни, використовуючи команду FLUSH PRIVILEGES: FLUSH PRIVILEGES;

Якщо вам потрібно повністю змінити права користувача, може бути простіше спочатку анулювати всі його поточні права, а потім надати новий набір дозволів. Для анулювання всіх прав у користувача, використовуйте: REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'newuser'@'localhost';

Потім надайте новий набір привілеїв, як потрібно: GRANT SELECT, UPDATE ON exampledb.* TO 'newuser'@'localhost';

Не забудьте очистити привілеї після внесення цих змін: FLUSH PRIVILEGES;

Як видалити користувача MySQL

  1. Увійдіть на сервер MySQL як користувач root. Введіть наступну команду: mysql -u root -p.
  2. Введіть ваш пароль root для підключення до сервера MySQL.
  3. Використовуйте команду DROP USER для видалення облікового запису користувача. Замініть newuser на ім’я користувача та localhost на хост, з якого здійснюється підключення: DROP USER 'newuser'@'localhost';
  4. Якщо користувач може підключатися з будь-якого хоста, використовуйте: DROP USER 'newuser'@'%';
  5. Перед видаленням користувача добре переконатися, що жоден об’єкт (наприклад, тригери чи процедури) не залежить від цього користувача. Якщо ви зробите це, ви уникнете можливих несподіваних проблем після видалення користувача. Ви можете переглянути залежні об’єкти у вашій базі даних і перепризначити власність за необхідності.
  6. Хоча команда DROP USER видаляє обліковий запис користувача та його привілеї, розумно зробити FLUSH PRIVILEGES;, щоб переконатися, що всі зміни застосовані негайно.

Як показати користувачів для бази даних MySQL

Перегляд усіх користувачів у вашій базі даних MySQL є корисним способом управління та аудиту облікових записів користувачів. Тоді ви знатимете, хто має доступ до вашої бази даних та які у них дозволи.

Якщо ви знайомі з командами MySQL, ви можете подумати, що існує команда SHOW USERS — схожа на команди SHOW DATABASES або SHOW TABLES, які ви вже, ймовірно, знаєте та використовуєте. Однак, команда SHOW USERS не існує.

Отже, як ви можете побачити всіх користувачів вашої бази даних? Дотримуйтесь цих кроків.

  1. Увійдіть на сервер MySQL як користувач root. Введіть наступну команду: mysql -u root -p.
  2. Введіть свій пароль root для підключення до сервера MySQL.
  3. MySQL зберігає інформацію про облікові записи користувачів у таблиці mysql.user. Щоб переглянути всі облікові записи користувачів, ви можете виконати наступний SQL-запит для відображення списку всіх користувачів та хостів, з яких вони можуть підключатися: SELECT user, host FROM mysql.user;
  4. Якщо вам потрібна більш детальна інформація про кожного користувача, така як їх привілеї або інші налаштування, ви можете запитувати додаткові стовпці з таблиці mysql.user. Наприклад: SELECT user, host, authentication_string, plugin FROM mysql.user;
  5. Щоб фільтрувати та переглядати конкретних користувачів, ви можете додати до свого запиту клазулу WHERE. Наприклад, щоб переглянути користувачів, які підключаються з localhost, використовуйте: SELECT user, host FROM mysql.user WHERE host = 'localhost';

Керування користувачами з DreamHost

Меню панелі керування DreamHost, що включає опції, такі як Домашня сторінка, Вебсайти та MySQL бази даних, виділені синім кольором.

Якщо ідея використання інструментів командного рядка здається складною, панель DreamHost пропонує зручну альтернативу для управління користувачами MySQL.

Панель DreamHost — це веб-інтерфейс, який спрощує завдання з управління базами даних, тому вам не доведеться використовувати командні рядки.

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

Планшет, що показує сторінку Бази знань DreamHost на тему баз даних MySQL, з іконками чат-бульбашок, серверів та користувачів навколо.

І якщо ви шукаєте надійний керований хостинг для вашого вебсайту, який не тільки робить управління базою даних зрозумілим завдяки інтуїтивно зрозумілій панелі керування, але також пропонує безкоштовну міграцію, цілодобову підтримку та гарантії безперервної роботи — вам потрібен DreamHost.

Ознайомтеся з нашими доступними планами хостингу і дізнайтеся, чому мільйони людей та бізнесів обирають нас!

Виділені сервери

Найвищий рівень потужності, безпеки та контролю

Виділені сервери від DreamHost використовують найкраще апаратне та програмне забезпечення, щоб ваш сайт завжди працював і завжди був швидким.

Дивіться також