2015-03-02 4 views
1

Я хотел бы проверить, имеет ли пользователь разрешение на автоматическое обрезание таблиц в БД MySQL. Эта проверка должна выполняться без каких-либо побочных эффектов.Проверьте, есть ли у пользователя разрешение на усечение таблиц программно

Любые предложения о том, как я могу это сделать?

ответ

0

В TRUNCATE TABLE потребности в двух привилегий таблицы: Drop и DELETE, который хранит в mysql.tables_priv таблице, поэтому вы должны проверить, если пользователь имеет оба права. т.е .: этот запрос показывает, какой пользователь имеет усечение разрешение на каком столе:

select user,table from mysql.tables_priv 
where Table_priv like '%Delete%' and Table_priv like '%Drop%' 
0

tables_priv будет содержать только привилегии, которые не были предоставлены на более высоком уровне. Если ответ @ hpns не появляется, попробуйте:

SELECT `user`, `db` FROM `mysql`.`db` WHERE `Delete_priv` AND `Drop_priv` 
Смежные вопросы