Могу ли я предоставить доступ к базам данных с префиксом, а затем wild card?
Могу ли я GRANT ALL PRIVILEGES ON a*.* TO 'my_user'@'%' WITH GRANT OPTION;?
Я просто хочу, чтобы у пользователя был доступ только ко всем базам данных, начинающимся с "my_prefix_", но не к, например, "mysql".
Ответ 1
Да, вы можете.
Это то, что phpMyAdmin делает, когда я делаю пользователя jaap и использую опцию Grant all privileges on wildcard name (username\_%):
GRANT ALL PRIVILEGES ON `jaap\_%` . * TO 'jaap'@'localhost';
Что ты имеешь в виду, верно?
PS
Как вы можете видеть, _ экранируется, потому что в (My) SQL unescaped _ означает "один символ". (Как . в регулярном выражении.) В этом случае вы хотите, чтобы _ был литералом, поэтому базы данных должны начинаться с jaap_