ГоловнаКаталогБлогРейтингЕ-Пошта 
 
 
Зробити домашньою у вибране  

  Відміна привілеїв і видалення користувачів  
Для відміни привілеїв користувача застосовується оператор REVOKE. Його синтаксис дуже схожий на синтаксис оператора GRANT, лише з тією різницею, що опцію ТО замінено на FROM, а опції IDENTIFIED BY, REQUIRE і WITH GRANT OPTION відсутні зовсім:

REVOKE privileges (columns) ON what FROM асcount

Частина асcount цього оператора повинна відповідати частині асcount початкового оператора GRANT для користувача, привілеї якого відміняються. Частина privileges необов'язково повинна відповідати попереднім привілеям. Користуючись оператором REVOKE, можна відмінити тільки деякі з привілеїв, наданих оператором GRANT.

GRANT ALL ON sampdb.* TO 'boris'@'localhost' IDENTIFIED BY 'ruby';
REVOKE DELETE,UPDATE ON sampdb.* FROM 'boris'@'localhost';

Привілеї GRANT OPTION не включена в ALL, тому відмінити її можна тільки при явній її згаданій частині privileges оператора REVOKE:

REVOKE GRANT OPTION ON sales.* FROM 'alicia'@'%.big-corp.com';

Оператор REVOKE застосовується для відміни привілеїв, але не для видалення користувачів. В таблиці user все одно залишається запис для користувача, навіть якщо всі привілеї для нього відмінено. Це означає, що користувач все ще має можливість під'єднуватися до серверу. Для повного видалення користувача необхідно видалити його запис з таблиці user. Для цієї мети застосовується оператор DELETE. Наприклад, для видалення облікового запису, створеного для mary@%.snake.net:

% mysql -u root mysql
mysql> USE mysql
mysql> DELETE FROM user
-> WHERE User='mary' and Host='%.snake.net';
mysql> FLUSH PRIVILEGES;

Оператор DELETE видаляє запис користувача, а оператор FLUSH вказує серверу перезавантажити таблиці дозволів. Таблиці перезавантажуються автоматично при використовуванні операторів GRANT і REVOKE. Проте це не відбувається при безпосередній зміні таблиць дозволів. (Перевірте також інші таблиці дозволу на наявність будь-яких записів, що відносяться до облікового запису, що видаляється, і, перед оновленням таблиць, видаліть будь-яке нагадування, що має до неї відношення.)

Дещо парадоксально те, що за допомогою оператора GRANT можна зробити відразу декілька операцій відключення привілеїв. Наприклад, не існує синтаксису оператора REVOKE, що враховує можливість облікового запису здійснювати з'єднання з використанням SSL. Натомість можна скористатися оператором GRANT для надання привілею USAGE на глобальному рівні (для того, щоб поточні привілеї залишилися незмінними) і включити пропозицію REQUIRE NONE, що свідчить про те, що підтримка протоколу SSL не потрібна:

GRANT USAGE ON *.* ТО асcount REQUIRE NONE;

Аналогічно, при установці обмеження ресурсів для користувача їх не можна видалити за допомогою оператора REVOKE. Натомість для установки значень обмеження в 0 ("немає обмежень") скористайтеся оператором GRANT з вказаною пропозиції USAGE:

GRANT USAGE ON *.* TO асcount
WITH MAX_CONNECTIONS_PER_HOUR 0 MAX_QUERIES_PER_HOUR 0
MAX_UPDATES_PER_HOUR 0;




  Ім'я:
  Пароль:
Комп'ютерні мережі, 2-е видання
Комп'ютерні мережі, 2-е видання

APServer | SiMan CMS | Лічильник відвідувань | Тека сайтів | Рейтинг | Форум | Лінійки малюкам | PHP Builder | Download | Шаблони сторінок | Посібник Smarty | Підручник PHP | Статті/Огляди | Розробка сайтів | Банерна мережа