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;