Привілеї в mysql - студопедія

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

Перевірка користувача здійснюється по трьох полях таблиці user (host, user і password) бази mysql. Сервер встановлює з'єднання тільки в тому випадку, якщо знаходить в таблиці user запис, в якій ім'я користувача і пароль збігаються з введеними значеннями.

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

mysql> SELECT password FROM user;

Привілеї в mysql - студопедія

Ознайомитися з усіма таблицями бази mysql можна подавши команду

Привілеї в mysql - студопедія

Після встановлення з'єднання сервер починає сеанс роботи з користувачем. Для кожного вступника запиту сервер перевіряє, чи є у користувача досить привілеїв для виконання запиту. Інформація про привілеї знаходиться в таблицях - user, db, host, tables_priv або columns_priv.

Список привілеїв представлений нижче:

До чого застосовується

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

Привілеї SELECT, INSERT, UPDATE І DELETE дозволяють виконувати операції над рядками таблиць баз даних. Привілей index забезпечує створення або знищення індексів. Привілей alter дозволяє використовувати ко-манду alter table. Привілеї create і drop дозволяють створювати нові або знищувати існуючі бази даних і таблиці. Привілей GRANT gram дозволяє вам надавати іншим користувачам привілеї, якими володієте ви самі.

Решта привілеї використовуються для адміністрування SQL - сервера. Команда shutdown завершує роботу сервера.

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

Команди grant і revoke дозволяють системним адміністраторам створювати користувачів MySQL а також надавати права користувачам або позбавляти їх прав на чотирьох рівнях.

Глобальні привілеї застосовуються до всіх баз даних на зазначеному сервері. Ці привілеї зберігаються в таблиці mysql.user.

· Рівень бази даних.

Привілеї бази даних застосовуються до всіх таблиць зазначеної бази даних. Ці привілеї зберігаються в таблицях mysql .db і mysql .host.

Привілеї таблиці застосовуються до всіх стовпцях зазначеної таблиці.
Ці привілеї зберігаються в таблиці mysql. tables_priv.

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

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

mysql> GRANT SELECT, INSERT ON taxi. * TO Mike @ localhost

IDENTIFIED BY 'secret';

Ця команда дає права insert і select на базу taxi (на всі таблиці - це задається символом зірочки) користувачеві Mike, який підключається локально (localhost), причому, при підключенні до сервера користувач повинен вказати пароль 'secret'. Пароль зберігається на сервері в зашифрованому вигляді.

mysql> GRANT ALL PRIVILEGES ON *. * TO Ann @ "%"

-> IDENTIFIED BY 'some_pass' WITH GRANT OPTION;

Тут Anna отримує всі права (all privileges) на всі таблиці всіх баз сервера (*. *), Причому підключатися вона може як локально, так і віддалено через мережу (це зазначено символом% після Anna @). До того ж Anna може передавати свої права іншим користувачам (with grant option), т. Е. Сама може подавати команду grant і створювати нових користувачів системи.

mysql> GRANT USAGE ON *. * TO dummy @ localhost

IDENTIFIED BY 'password';

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

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

REVOKE SELECT (use_on) ON taxi.timetable FROM Mike @ localhost;

Користувач Mike не може переглядати значення поля use_on в таблиці timetable.

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

mysql> SET PASSWORD FOR root @ localhost = PASSWORD ( 'new_password');

Користувачі можуть працювати і безпосередньо з таблицями призначення привілеїв:

mysql> USE mysql;

Mysql> UPDATE user SET Password = PASSWORD ( 'new_password')

-> WHERE user = 'root';

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

mysql> FLUSH PRIVILEGES;

Якщо пароль задається за допомогою оператора grant. identified by, немає необхідності використовувати функцію password (). Ця команда самостійно виробляє шифрацию пароля, тому пароль слід вказувати в простому текстовому вигляді, наприклад, таким чином:

mysql> GRANT USAGE ON *. * TO jeffrey @ "%" IDENTIFIED BY 'biscuit';

Зміни, що вносяться до таблиці призначення привілеїв за допомогою команд grant, revoke або set password, враховуються сервером відразу після виконання цих інструкцій.

Схожі статті