2015-04-19 3 views
2

Есть ли возможность сделать что-то вроде этого?Предоставлять привилегии определенным таблицам базы данных mysql с помощью «*»?

GRANT SELECT , INSERT , UPDATE , DELETE ON `database`.`prefix_*` TO 'user'@'localhost'; 

Который позволяет мне установить разрешения быстро для каждой таблицы, которая начинается с "prefix_"

+0

Да, но используя '%' в качестве подстановочного знака, а не '*', и обратную косую черту-escape '_', потому что это тоже шаблон. 'prefix \ _%' –

+0

Когда я использую команду backslash-escape, я получаю: '# 1103 - Неверное имя таблицы 'префикс \ _%'' – Taapo

+0

Существует ли какая-либо таблица с 'prefix_'? –

ответ

1

Вы можете использовать % вместо *

GRANT SELECT , INSERT , UPDATE , DELETE ON `database`.`prefix\_%` TO 'user'@'localhost'; 

От docs:

“_” и “%” подстановочные знаки разрешены при указании имен баз данных в операторах GRANT, которые предоставляют привилегии на глобальном уровне или базе данных . Это означает, например, что если вы хотите использовать символ «_» как часть имени базы данных, вы должны указать его как «_» в операторе GRANT, чтобы пользователь не мог получить доступ к дополнительным базы данных, соответствующие шаблону шаблона;

Смежные вопросы