Spec-Zone.ru › MySQL 9.2

15.7.1.5 Команда DROP USER

DROP USER [IF EXISTS] user [, user] ...

Команда DROP USER удаляет одну или несколько учётных записей MySQL и их привилегии. Она удаляет строки привилегий для учётной записи из всех таблиц предоставления грантов.

Роли, указанные в значении системной переменной mandatory_roles, нельзя удалить.

Для использования DROP USER необходимо иметь глобальную привилегию CREATE USER или привилегию DELETE для схемы mysql. Когда включена системная переменная read_only, DROP USER дополнительно требует привилегию CONNECTION_ADMIN (или устаревшую привилегию SUPER).

Команда DROP USER завершается ошибкой, если любая удаляемая учётная запись указана как атрибут DEFINER для любого сохранённого объекта. (То есть, команда завершается ошибкой, если удаление учётной записи сделает сохранённый объект сиротой.) Для выполнения операции необходимо иметь привилегию SET_ANY_DEFINER или ALLOW_NONEXISTENT_DEFINER; в этом случае команда выполнится с предупреждением, а не с ошибкой. Дополнительную информацию, включая то, как определить объекты, которые указывают на данную учётную запись как атрибут DEFINER, см. в разделе Сироты сохранённых объектов.

Команда DROP USER либо выполняется успешно для всех указанных пользователей, либо отменяется и не оказывает никакого влияния, если произойдёт какая-либо ошибка. По умолчанию возникает ошибка, если вы пытаетесь удалить пользователя, которого не существует. Если указан клауз IF EXISTS, для каждого указанного пользователя, которого не существует, генерируется предупреждение, а не ошибка.

Команда записывается в двоичный журнал, если выполняется успешно, но не если завершается ошибкой; в этом случае выполняется откат, и изменения не вносятся. Команда, записанная в двоичный журнал, включает всех указанных пользователей. Если указан клауз IF EXISTS, это включает даже пользователей, которые не существуют и не были удалены.

Каждое имя учётной записи использует формат, описанный в Раздел 8.2.4, «Указание имён учётных записей». Например:

DROP USER 'jeffrey'@'localhost';

Если часть имени учётной записи, относящаяся к хосту, опущена, она по умолчанию устанавливается в '%'.

Важно

DROP USER не автоматически закрывает любые открытые сессии пользователя. Скорее, в случае удаления пользователя с открытой сессией, команда не вступает в силу до закрытия сессии этого пользователя. После закрытия сессии пользователь удаляется, и следующая попытка входа этого пользователя завершается неудачей. Это сделано умышленно.

DROP USER не автоматически удаляет или делает недействительными базы данных или объекты внутри них, созданные старым пользователем. Это включает сохранённые программы или представления, для которых атрибут DEFINER указывает на удалённого пользователя. Попытки доступа к таким объектам могут привести к ошибке, если они выполняются в контексте безопасности определённого исполнителя. (Дополнительную информацию о контексте безопасности см. в Раздел 27.7, «Управление доступом к сохранённым объектам».)

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-9.2-en/drop-user.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API