Qual é o privilégio mínimo necessário para alterar uma restrição de chave estrangeira?
Meu script de migração parou de funcionar após o MySQL 5.5.41 corrigir este erro:
- O InnoDB permitiu que uma chave estrangeira fosse criada referenciando uma tabela pai para a qual o usuário não tinha privilégios suficientes. (Bug # 18790730)
Eu recebo este erro:
SQLSTATE [42000]: Erro de sintaxe ou violação de acesso: 1142 comando REFERENCES negado ao usuário 'foo' @ 'localhost' para a tabela 'core.users' (SQL: alter table `user_baz` adiciona restrição user_baz_user_id_foreign chave estrangeira (` user_id`) `core`.`users` (` id`) na exclusão em cascata na atualização em cascata)
O que significa que preciso corrigir os privilégios. Qual é o privilégio mínimo de que preciso?
GRANT REFERENCES ON test.user_baz TO 'foo'@'localhost';
Por exemplo:
fonte
Primeiro, se tudo mais falhar, leia a documentação (seção Notas de uso).
Abaixo está um exemplo.
fonte