Новини високих технологій
» » Адміністрування MySQL: як створити користувача та визначити його права

Адміністрування MySQL: як створити користувача та визначити його права

17-12-2017, 18:25
1 128
Характерна особливість MySQL - власна безпека, розраховує на зовнішню захист. Як сучасна, повнофункціональна й ефективна система управління базами даних MySQL має власні інструменти для управління користувачами і їх доступом до ресурсів, які контролює.
Якщо не знати правильні ім'я та пароль користувача, доступ до бази даних через MySQL отримати дуже складно. У звичайному режимі роботи хостингу цього цілком досить. Непередбачені ситуації, хакерські атаки і інші неприємності - питання зовнішнього системного адміністрування та служби безпеки. Така концепція стала традиційною і практично не обговорюється.


Інсталяція сервера MySQL і користувач root

В якій би операційному середовищі не була встановлена система управління базами даних, в ній завжди є хоча б один користувач: root. Встановити MySQL, створити користувача з усіма правами root - без цього робота з сервером неможлива. Привілеїв цього користувача достатньо, щоб: створювати й адмініструвати нових користувачів; створювати бази даних і управляти ними.
Принципово можливе існування в MySQL "беспарольных" користувачів, але робити це неприпустимо. Звичайна практика: сервер встановлений на комп'ютері, на якому може бути поставлений хостинг (локальний варіант); сервер стоїть на загальнодоступному хостингу в інтернеті. У першому випадку можлива робота з сервером з командного рядка і використання phpMyAdmin, у другому випадку тільки phpMyAdmin або йому подібний засіб, але буває доступна командний рядок через віддалений SSH-доступ.


Власні інструменти адміністрування

Відчуття родинних відносин з сімейством юниксоидов і з минулим серверів Apache - характерна риса MySQL: створити користувача - це командний рядок з дивним синтаксисом. Для фахівців, що працюють з Linux і йому подібними системами, це настільки ж звично, наскільки дико виглядає в очах користувачів Windows, які ніколи не виходили в реальне життя». Створення користувача починається з запуску командного рядка сервера. У середовищі Windows це робиться наступним чином.
Спочатку (1) потрібно запустити командний рядок від імені адміністратора, потім перейти у папку, де знаходиться MySQL (2), потім запустити сам сервер (3): mysql -u -p тут "-u" і "-p" - ключі, які вказують на ім'я "" = root (або інше ім'я) і пароль. В принципі користувач може бути і не root, але такий, у якого є "рутові" (адміністративні) права. Істотно : сервер насправді працює завжди, тут mysql -u -p - це команда для доступу до сервера, а не його запуск. В середовищі Linux і йому подібних систем така команда - це "рідне" дію і, як правило, визначається просто запуском mysqld в потрібному місці (по потрібному шляху), це слід уточнити у адміністратора. Тут зазвичай інше ім'я не mysql, а mysqld. Також тут не завжди ця дія доступна всім користувачам (операційної системи, а не сервера MySQL). На відміну від Windows, в линуксоидах порядок і безпека - це природне і не обговорюване вимога, до якого завжди цивілізоване ставлення.
У будь-якому випадку, як тільки mysql запустився, він повідомить про це запрошенням (4): mysql> і можна буде працювати як з користувачами, так і з базами даних. Примітка. При установці в середовищі Windows: Apache, MySQL, PHP, phpMyAdmin можна ставити за default-шляхам, але рекомендується використовувати більш компактні і близькі місця розміщення цих важливих інструментів: c:SCiAApache; c:SCiAPHP; c:SCiAMySQL; c:SCiBlocalhostwwwphpMyAdmin; c:SCiBsite1www; c:SCiBsite2www; c:SCiBsiteNwww. Ця логіка спростить не тільки адміністрування, але й розширить можливості розробника по переміщенню між версіями продуктів і управління їх функціональністю.

Робота в командному рядку MySQL

Як тільки сервер відповів і надав свою командний рядок, можна створювати користувачів і призначати їм права.
В даному прикладі командою create user був створений користувач Petrov з паролем 123DFG. Якщо при введенні команди допускається помилка, сервер пропонує її виправити, але краще при роботі в командному рядку ніколи помилок не допускати ! Наступна команда grant all privileges дає всі права на все. Команду flush можна не давати, але вона 'виштовхує' буфер команд, тобто закріплює їх виконання.

MySQL: створити користувача і дати права на базу

Команда, використаний у прикладі: GRANT ALL PRIVILEGES ON *.* TO 'Petrov'@'localhost'; насправді відкриває доступ для користувача Petrov для всіх баз даних (перша зірочка) до всіх таблиць (друга зірочка).
За загальним правилом MySQL, створити користувача -це: GRANT[тип привилегии]ON[название БД].[название таблицы]TO '[пользователь]'@'localhost'; Допускаються наступні привілеї: ALL PRIVILEGES - всі права. CREATE - право створювати нові таблиці/бази даних. DROP - право видаляти таблиці/бази даних. DELETE - право видаляти інформацію в таблицях. INSERT - право записувати інформацію в таблиці. SELECT - право читати інформацію з таблиць. UPDATE - право оновлювати інформацію в таблицях. GRANT OPTION - право працювати з привілеями інших користувачів. З практичної точки зору, в MySQL "створити користувача" передбачає три варіанти прав:
всі права на всі бази і всіх користувачів; читання і запис; тільки читання. Інші варіанти надання прав мало коли потрібні. В середовищі Linux-систем підстав для "правової" свободи (і необхідності) значно більше, але там і можливостей набагато більше, ніж у Windows. Операція, зворотна MySQL "створити користувача", - drop. drop user 'Petrov'@'localhost'; Після виконання цієї команди користувача Petrov не стане і його привілеї пропадуть. Для зміни привілеїв використовується команда: REVOKE[привилегия]ON[БД].[Таблица]TO '[пользователь]'@'localhost'; Звичайне дію в MySQL - створити користувача або видалити і тільки, але зміна привілеїв теж допустима операція (рідко затребувана).

Використання phpMyAdmin

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

Про командному рядку і безпеки

Безумовно, використання командного рядка MySQL - заняття малопривабливе, але слід мати на увазі, що в деяких випадках тільки командний рядок сервера може врятувати базу даних або користувача, забезпечити імпорт або експорт інформації.
Версії програмних продуктів так швидко розвиваються, що розробники просто не встигають поєднувати можливості, наприклад, PHP і MySQL, MySQL phpMyAdmin. Якщо раптом відбувається якась оказія, командний рядок завжди врятує ситуацію. Слід також ніколи не забувати: адміністрування MySQL стосується лише доступу до баз даних і через її функціонал. Файли баз даних відкриті для доступу поза MySQL. Зовнішня захист MySQL і контрольованих нею ресурсів - реальна і важлива необхідність.
Цікаво по темі
Localhost phpMyAdmin Tools: опис, помилки
Localhost phpMyAdmin Tools: опис, помилки
Застосування, настройка і установка phpMyAdmin. Опис продукту, його особливості та часто виникають помилки.
Групування записів MySQL: group by
Групування записів MySQL: group by
Групування й аналіз записів таблиць бази даних представляють практичний інтерес у багатьох областях застосування. Рішення такого роду задач засобами
Як використовувати MySQL: timestamp і datetime
Як використовувати MySQL: timestamp і datetime
Час завжди має особливе значення. Що і як використовувати для запису часу подій, часто має істотне значення. З одного боку стандартні можливості
phpMyAdmin: як зайти в адмінку? Інструкція для користувача
phpMyAdmin: як зайти в адмінку? Інструкція для користувача
Створюючи ваш перший серйозний веб-проект рано чи пізно доведеться зіткнутися з роботою над базами даних, і технології MySQL зокрема. Сервер баз
Установка PhpMyAdmin в різних операційних системах
Установка PhpMyAdmin в різних операційних системах
Як встановити PhpMyAdmin в Ubuntu, CentOS і Debian. Особливості установки LAMP для використання PhpMyAdmin.
MySQL select select from: оператор вибірки
MySQL select select from: оператор вибірки
MySQL - одна з найпопулярніших систем управління базами даних (СУБД). У даній статті ми розглянемо базову функціональність оператора вибірки SELECT,