Управління привілеями користувачів бд mysql

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

Права для користувачів MySQL

Існує кілька привілеїв в системі БД MySQL які вказані нижче з описом. Останні привілеї є привілеями адміністраторського рівня, що явно вказано лише для довідки. Повна інформація про права / привілеї доступна в документації розробника MySQL:

CREATE - дозволяє створювати нові бази даних і таблиці

DROP - дозволяє видаляти бази даних або таблиці

INSERT - дозволяє додавати рядки до таблиці.

DELETE - протилежна INSERT - дозволяє видаляти рядки з таблиці.

ALTER - дозволяє змінювати структуру таблиць. Вимагає CREATE і INSERT привілеї.

GRANT OPTION - дозволяє призначити конкретні права певному користувачеві (також і відібрати). Можливо дати / відібрати тільки ті права, якими призначає сам має.

LOCK TABLES - блокує таблицю на час штучного внесення в неї змін (адміністрування), щоб дані всередині неї не могли змінитися своїм природним шляхом (під час робочого процесу).

REFERENCES - дозволяє створювати зв'язок між таблицями по зовнішньому ключу.

EVENT - дає право на створення / зміна / видалення завдань для планувальника

TRIGGER - дозволяє створювати / змінювати / видаляти тригери (прив'язують до певних таблиць), які при виконанні операцій DELETE, UPDATE або INSERT здійснюють додаткові дії.

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

CREATE TEMPORARY TABLES - дозволяє створювати тимчасові таблиці на час сесії.

CREATE VIEW - дозволяє створити певне уявлення у вигляді таблиці, яка фактично не існує як єдина і містить лише дані інших таблиць. Наприклад, в цьому поданні можна зібрати певні згруповані дані з трьох таблиць (оператором SELECT) та за фактом зібрані дані будуть лише посилатися на дані цих 3-х таблиць і також будуть об'єднанням, що не потребує власної таблиці.

SHOW VIEW - дозволяє перевірити яким запитом (з яких даних складається) створено певне уявлення, заданий за допомогою CREATE VIEW

CREATE ROUTINE - дозволяє створити процедуру, яка є набором заготовленим набором SQL-команд.

ALTER ROUTINE - дозволяє змінити процедуру, створену за допомогою CREATE ROUTINE.

EXECUTE - дозволяє викликати готові процедури.

FILE - надає доступ на читання будь-якого файлу на сервері, до якого є доступ у самої системи MySQL і доступ на створення файлу в директорії, на які у MySQL є права записи.

CREATE TABLESPACE (admin) - дозволяє створювати / змінювати / видаляти простору таблиць. Саме цей простір є логічним і не пов'язане зі структурою БД або схемою. Воно декларує прихильність об'єктів БД на фізичних носіях і використовується для оптимізації системи БД.

CREATE USER (admin) - дозволяє створювати / змінювати / перейменовувати / видаляти користувачів баз даних.

PROCESS (admin) - дозволяє доступ до інформації про потоках (процесах) виконуються на сервері.

PROXY (admin) - дозволяє увійти користувачем під виглядом іншого користувача. Використовується адміністратором для перевірки / налагодження прав доступу у необхідного користувача.

RELOAD (admin) - дозволяє використання оператора FLUSH, який чистить кеш MySQL

REPLICATION CLIENT (admin) - дозволяє виконувати операції SHOW MASTER STATUS, SHOW SLAVE STATUS і SHOW BINARY LOG.

REPLICATION SLAVE (admin) - дана привілей необхідна користувачам веденого сервера БД, щоб цей сервер міг підключатися до ведучого сервера в ролі веденого. Без цього привілею ведені сервера не зможуть запитувати оновлення баз даних і таблиць у ведучого сервера.

SHOW DATABASES (admin) - дозволяє виконувати оператор SHOW DATABASES. Користувачі, які не мають подібного привілею, при виконанні даного оператора зможуть лише побачити бази даних до яких у них є які-небудь права.

SHUTDOWN (admin) - привілей дозволяє виконати оператор SHUTDOWN, вимикає MySQL сервер.

SUPER (admin) - привілей, що дає право на безліч операцій:

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

ALL (admin) - користувач, що дану привілей, автоматично призначаються всі права в рамках рівня привілеїв (можливих привілеїв в принципі, згідно контексту видачі привілеїв). Чи не призначається тільки привілей GRANT OPTION в даному випадку.

Призначення прав для користувачів MySQL в панелях управління хостингом

Розглянемо далі процедуру призначення прав користувачам MySQL в таких панелях управління хостингом, як:

DirectAdmin

На головній сторінці DirectAdmin з під рівня користувача в меню Your Account переходимо в розділ MySQL Management:

Управління привілеями користувачів бд mysql

Далі нам необхідно перейти в конкретну базу даних, щоб управляти користувачами, що мають доступ до неї або створити нову за допомогою посилання Create new Database:

Управління привілеями користувачів бд mysql

Тут ми можемо як створити нового користувача для даної бази шляхом переходу по Create New Database User. так і прив'язати до неї існуючого. Слід зазначити, що немає спеціально відведеного інтерфейсу для управління користувачами. Він доступний тільки за допомогою переходу через будь-яку базу даних. Щоб дати користувачеві права - переходимо по посиланню modify privileges:

Управління привілеями користувачів бд mysql

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

Управління привілеями користувачів бд mysql

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

На головній сторінці cPanel нам необхідно знайти розділ Бази даних в ньому перейти по Бази даних MySQL:

Управління привілеями користувачів бд mysql

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

Якщо у нас немає ні бази, ні користувача, то створюємо їх в відповідних розділах сторінки:

Управління привілеями користувачів бд mysql

Розділ Поточні бази даних оновиться:

Управління привілеями користувачів бд mysql

Розділ Поточні користувачі оновиться:

Управління привілеями користувачів бд mysql

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

Управління привілеями користувачів бд mysql

Після додавання користувача до бази даних відкриється діалогове вікно для призначення привілеїв:

Управління привілеями користувачів бд mysql

Кнопка «Все права» еквівалентна привілеї ALL, описаної на початку керівництва, і призначить всі можливі права користувачеві в контексті приналежності користувача певної групи користувачів на рівні всього MySQL сервера.

Управління привілеями користувачів бд mysql

Готово. Користувач призначений базі даних.

ISPmanager Lite 5

При вході в ISPmanager в ролі якого-небудь користувача необхідно перейти в Інструменти -> Бази даних з лівого меню.

Управління привілеями користувачів бд mysql

Далі на що відкрився інтерфейсі управління базами даних необхідно вибрати необхідну базу і перейти в меню Users для переходу до інтерфейсу управління користувачами БД. Якщо ж баз даних немає, то створити нову можна перейшовши по кнопці Add.

Управління привілеями користувачів бд mysql

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

Управління привілеями користувачів бд mysql

Після цього ми побачимо все права, які можна призначити цьому користувачу:

Управління привілеями користувачів бд mysql

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

Webuzo складається з 2-х панелей: адміністраторська і призначена для користувача. Переходимо в призначену для користувача панель і на головній сторінці вибираємо Manage Databases

Управління привілеями користувачів бд mysql

На сторінці, ми можемо:

  • побачити список існуючих баз даних [Database (s)];
  • створити нову базу даних [Create Database];
  • побачити список існуючих користувачів баз даних [Database User (s)];
  • створити користувача баз даних і призначити його певній базі даних [Add User To Database]

Якщо цільової бази даних поки що не існує, то переходимо в Create Database і створюємо нову базу даних:

Управління привілеями користувачів бд mysql

Якщо все ж цільова база даних вже існує, то в управлінні базами даних нам необхідно перейти в Add User To Database і створити нового користувача БД або вказати будь-якого існуючого для його прив'язки до бази даних:

Управління привілеями користувачів бд mysql

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

Управління привілеями користувачів бд mysql

При успішному зміну прав в поточному вікні з'явиться напис Database Privileges Updated. Задача виконана.

Оцініть, будь ласка, цю статтю: