Блог компанії 3v-Hosting

Створення нового користувача та управління привілеями у MySQL

Адміністрування

5 хв.


Створення користувачів та керування ними в MySQL – фундаментальне завдання для адміністраторів баз даних (DBA). Це завдання включає не тільки створення користувачів, але й призначення відповідних дозволів для забезпечення безпеки та належного управління базою даних. У цій статті ми докладно розглянемо всі необхідні кроки щодо створення нового користувача та надання дозволів для цього користувача MySQL.

 


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

 

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

 


Чому важливо керувати користувачами?

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

 

 

 

Покроковий посібник зі створення нового користувача в MySQL


Попередні умови

Перш ніж почати, переконайтеся, що у вас є адміністративний доступ до вашого сервера зі встановленою базою даних MySQL. Зазвичай це означає, що ви маєте доступ до користувача root або іншого користувача з достатніми привілеями.

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

 

 

Підключення до MySQL

 

Щоб підключитися до сервера MySQL, використовуйте наступну команду у своєму терміналі:

     mysql -u root -p


Вам буде запропоновано ввести пароль root. Після успішного входу ви отримаєте доступ до інтерфейсу командного рядка MySQL.

 


Створення нового користувача

Оператор CREATE USER використовується для створення нового користувача MySQL. Ось основний синтаксис:


     CREATE USER 'username'@'host' IDENTIFIED BY 'password';

 

Приклад

Щоб створити користувача з ім'ям newuser та паролем user_password, виконайте:


     CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'user_password';


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

 


Надання дозволів новому користувачеві

Після створення користувача наступним кроком буде надання необхідних дозволів. З цією метою використовується оператор GRANT.

Щоб надати всі привілеї для конкретної бази даних, використовуйте наступний синтаксис:

 

     GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'host';


Приклад

Щоб надати всі права доступу до бази даних testdb користувачу newuser, виконайте:


     GRANT ALL PRIVILEGES ON testdb.* TO 'newuser'@'localhost';

 

Ця команда надає новому користувачеві повний доступ до бази даних testdb.

 

 


Застосування змін

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

     FLUSH PRIVILEGES;

 

 

Перевірка нового користувача

Щоб переконатися, що новий користувач створено та права встановлені правильно, ви можете використовувати оператор SHOW GRANTS:

     SHOW GRANTS FOR 'newuser'@'localhost';

Це відобразить усі привілеї, призначені новому користувачеві.

 


 

Інші статті на тему MySQL та адміністрування:


    - Детальний посібник: як знайти та оптимізувати повільні запити у MySQL

    - Як віддалено підключитися до MySQL

    - Як додати або видалити користувача в Linux системах

    - Як зробити свій сайт безпечнішим за менші гроші?

 


 


Детальна розбивка дозволів

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

      ALL PRIVILEGES: надає всі доступні привілеї.
      SELECT: дозволяє читати дані із таблиць.
      INSERT: дозволяє вставляти дані в таблиці.
      UPDATE: дозволяє оновлювати наявні дані.
      DELETE: дозволяє видалити дані.
      CREATE: дозволяє створювати нові бази даних та таблиці.
      DROP: дозволяє видаляти бази даних та таблиці.
      ALTER: дозволяє змінювати наявні таблиці.

 

 

Надання окремих привілеїв

 

Щоб надати окремі привілеї, змініть оператор GRANT належним чином. Наприклад, щоб надати привілеї SELECT та INSERT у testdb:

     GRANT SELECT, INSERT ON testdb.* TO 'newuser'@'localhost';

 

 

Відгук привілеїв

Якщо потрібно відкликати певні привілеї, використовуйте оператор REVOKE:

     REVOKE privilege_type ON database_name.* FROM 'username'@'host';


Приклад

Щоб відкликати привілей INSERT у нового користувача testdb:

     REVOKE INSERT ON testdb.* FROM 'newuser'@'localhost';

 

 

 


Розширене керування користувачами

 

Створення користувача з глобальними привілеями

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


     GRANT ALL PRIVILEGES ON *.* TO 'username'@'host' WITH GRANT OPTION;

 

Приклад

Щоб створити користувача-адміністратора з глобальними привілеями та надати йому доступ до всіх баз даних у даній інстансі:


     CREATE USER 'adminuser'@'localhost' IDENTIFIED BY 'admin_password';
     GRANT ALL PRIVILEGES ON *.* TO 'adminuser'@'localhost' WITH GRANT OPTION;

 

 

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

Щоб дозволити користувачеві підключатися з конкретного віддаленого хоста, замініть localhost на IP-адресу віддаленого хоста або використовуйте %, щоб дозволити підключення з будь-якого хоста:

     CREATE USER 'remoteuser'@'%' IDENTIFIED BY 'remote_password';
     GRANT ALL PRIVILEGES ON *.* TO 'remoteuser'@'%' WITH GRANT OPTION;

 

 

Найкращі практики управління користувачами

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

 

 

Висновок

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


Ну і звичайно - РОБІТЬ БЕКАПИ! :)