Який рівень привілеїв повинен мати користувач і на доступ до чого ці привілеї надаються

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







GRANT ALL ON *. * ТО ethel @ localhost IDENTIFIED BY "coffee" WITH GRANT OPTION

Специфікатор *. * В реченні ON можна умовно замінити фразою "всі бази даних і всі таблиці". Для підвищення безпеки підключатися користувачеві ethel дозволено тільки з одного локального комп'ютера. Обмеження комп'ютерів, з яких може підключатися до сервера володіє широкими правами користувач, - вельми мудре рішення. В цьому випадку обмежується і число комп'ютерів, з яких можуть бути зроблені спроби злому пароля.

Деякі привілеї (FILE, process, reload і shutdown) є адміністративними і можуть присвоюватися тільки за допомогою специфікатор глобальних привілеїв ON *. *. У разі необхідності їх можна привласнювати без надання привілеїв на рівні бази даних. Так, наприклад, наведений нижче оператор створює користувача flush, який має можливість тільки виконувати оператори FLUSH. Це може виявитися корисним в адміністративних сценаріях, коли потрібно оновити програмне забезпечення журналів:







GRANT RELOAD ON *. * ТО flush @ localhost IDENTIFIED BY "flushpass"

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

Привілеї рівня бази даних застосовуються до всіх таблиць певної бази. Такі привілеї присвоюються за допомогою пропозиції ON db name:

GRANT ALL ON samp_db. * TO [email protected] IDENTIFIED BY "rock" GRANT SELECT ON menagerie. * TO ro_user @% IDENTIFIED BY "dirt"

Перший із зазначених операторів надає користувачу bill всі права для роботи з усіма таблицями бази даних sampdb. Другий оператор створює користувача rouser з обмеженими правами (тільки читання), який може отримувати доступ до будь-якої таблиці бази даних menagerie, однак тільки для читання. Іншими словами, цей користувач має можливість запускати тільки оператор select.