Como implementar a segurança de tabelas sem o privilégio SUPER?

1

Um provedor MAJOR de MySQL baseado em nuvem não concede o privilégio SUPER ao usuário mestre. O provedor é o Amazon RDS, mas minha pergunta não é especificamente sobre o Amazon RDS, é para o caso geral do proprietário / administrador do banco de dados não ter privilégio SUPER.

Falta de privilégio SUPER significa que você não pode usar a cláusula DEFINER ao criar Procedimentos Armazenados.

Isso, por sua vez, significa que você não pode bloquear suas tabelas para ficarem inacessíveis a um determinado usuário, ao mesmo tempo em que concede acesso indireto ao mesmo usuário por meio de um Procedimento Armazenado.

Existe uma maneira alternativa de realizar a mesma estratégia de segurança "sem acesso direto à tabela" sem o SUPER?

    
por Alex R 10.03.2015 / 14:07

1 resposta

0

Non-sequitur.

Você não pode declarar explicitamente um DEFINER diferente de você, o que é sem sentido, já que você já é o definidor ... mas você ainda pode usar SQL SECURITY DEFINER | INVOKER para especificar o contexto de segurança que o procedimento usa em tempo de execução. Esta parte e seus aspectos de segurança não são diferentes de quando você tem o privilégio SUPER . A única diferença é que se você quiser que o definidor seja um usuário específico (privilegiado), para que o procedimento possa ser executado em um contexto definidor como aquele usuário ... você tem que logar como DEFINER para declarar o procedimento .

    
por 11.03.2015 / 23:13