Назад | Перейти на главную страницу

Привилегии MySQL - таблицы DROP, а не базы данных

Может кто-нибудь мне поможет с привилегиями здесь. Мне нужно создать пользователя, который может удалять таблицы в базах данных, но не может удалять базы данных?

Насколько я понимаю из Документы MySQL вы не можете просто сделать это:

Право DROP позволяет вам отбрасывать (удалять) существующие базы данных, таблицы и представления. Начиная с MySQL 5.1.10, привилегия DROP также требуется для использования оператора ALTER TABLE ... DROP PARTITION в многораздельной таблице. Начиная с MySQL 5.1.16, для TRUNCATE TABLE требуется привилегия DROP (до этого TRUNCATE TABLE требует привилегии DELETE).

Любые идеи?


Да, и используемая база данных - 5.0.45.

У меня такая же проблема :( Я думаю, что если пользователь может удалить все таблицы, тогда пустая база данных не имеет значения

Ну, вот уже 6 лет есть ошибка, но ничего не произошло.

http://bugs.mysql.com/bug.php?id=18938

Возможно, нам придется прибегнуть к добавлению функциональности к чему-то вроде MariaDB (вилка mysql) ...

Если пользователь может УДАЛИТЬ таблицу, он сможет УДАЛИТЬ все таблицы, что фактически удалит базу данных. Так что нет смысла в отдельных привилегиях для DROP TABLE и DROP DATABASE.

Если вы хотите предоставить пользователю привилегию DROP только одной указанной таблицы в базе данных, это может быть полезно, но MySQL не поддерживает это.

  1. Создать пользователя
  2. предоставить пользователю права на удаление для указанной базы данных

Я просто добавляю это, поскольку другие ответы для меня больше похожи на комментарии ... Короткий ответ - нет. Некоторые альтернативы:

  • Рассмотрите возможность помещения таблиц в другую базу данных, если вам действительно нужно, чтобы некоторые пользователи имели полный контроль над одними таблицами, а не над другими. Более привилегированные пользователи могут выполнять запросы к нескольким базам данных.

  • Разрешите DELETE и ALTER, чтобы вы могли хотя бы удалить и / или переопределить данные по мере необходимости. Все, что вам нужно, кроме капли.

Ни то, ни другое не особенно удобно, но если вам так важно, вы можете это сделать.