DROP USER
Оператор DROP USER дозволяє видалити обліковий запис user і має наступний синтаксис:
DROP USER user
Як обліковий запис user використовується Стандартний для MySQL запис виду 'username' @ 'host'.
Зауваження:
- Оператор DROP USER з'явився в СУБД MySQL, починаючи з версії 4.1.1.
Приклад:
DROP USER 'wet'@'%';
Оператор drop user (приклад) не закриває автоматично з'єднання у видаленого користувача, котрий зможе працювати з базою даних до тих пір, поки не буде закрито його з'єднання або зв'язок з сервером не обірветься.
Точно так само, як і оператор create user, оператор drop user дозволяє видалити cpaзу кілька облікових записів (приклад).
Приклад:
DROP USER 'wet'@'%', 'ret'%@'%', 'tor'@'%';
Спочатку оператор DROP USER видаляв тільки тих користувачів, які не володіють жодними правами, проте, починаючи з версії 5.0.2, порядок роботи оператора DROP USER був змінений, і він набув можливості видаляти будь-якого користувача з будь-яким рівнем привілеїв. До версії 5.0.2 перед використанням оператора DROP USER слід було переконатися, що користувач не володіє ніякими привілеями, Для цього необхідно було виконати оператор SHOW GRANTS (приклад). Якщо в результуючій таблиці облікового запису немає, користувач не володіє ніякими правами і його обліковий запис може бути видалено.
Приклад:
SHOW GRANTS;
Grants for root@localhost
GRANT ALL PRIVILEGES ON *. * TO 'root'@'localhost' WITH GRANT –OPTION
Як видно з прикладу, тільки користувач 'root' @ 'localhost' володіє привілеями, всі інші користувачі можуть бути видалені за допомогою оператора DROP USER (наступний приклад).
Приклад:
SELECT Host, User, Password FROM mysql.user;
Host User Password
localhost root
% wet *6BB4837EB74329105EE4S68DDA7DC67ED2CA2AD9
localhost softtime *6A7A4 90FB9DC8C33C2B025A91737077A7E9CC5E5
До версії 4.1.1 видалення користувача проводилося прямим редагуванням таблиці mysql.user (приклад). Для цього також потрібно видалити всі привілеї користувача що видаляється.
Приклад:
DELETE FROM mysql.user WHERE User = 'wet' AND Host = '%';
FLUSH PRIVILEGES;