Benefícios de segurança da criação de procedimentos armazenados mysql

Conteúdo

Criar procedimentos armazenados mysql envolve a criação de um conjunto de declarações sql, nomeá-los e armazená-los em mysql como um grupo. Desta forma, ele pode ser reutilizado e compartilhado por vários programas, obtenção, ao mesmo tempo, algumas vantagens importantes.

istock-693216672-3783833

Créditos fotográficos: Peterpal

Uma das razões mais benéficas para criar procedimentos armazenados em mysql é a camada extra de segurança.. que é colocado no banco de dados do aplicativo solicitante. Se a conta de usuário criada para o aplicativo ou portal web for configurada apenas com permissões de execução, a conta de usuário não pode ser diretamente inserida nas tabelas a seguir.

Está ajuda a impedir que um hacker acesse diretamente tabelas de banco de dados. o risco que é incorrido se um hacker usa essa conta de usuário que executa um procedimento armazenado é muito menor do que com uma conta de usuário que tem permissões completas de push, atualização e exclusão diretamente nas tabelas.

Controle de acesso ao criar procedimentos armazenados mysql

Na prática, ao criar procedimentos armazenados mysql, é viável usar algumas regras que facilitam o controle da conta você pode especificar um usuário em um atributo de definir objeto. Estes são os seguintes:

  • Que só é viável especificar um valor DEFINIDO diferente de sua própria conta, se você tem o Super privilégio.
  • Que o único valor legal de usuário para todos que não têm o privilégio SUPER é sua própria conta, se foi especificado literalmente ou através do uso de CURRENT_USER, tornando impossível configurar o switch para qualquer outra conta.

outra vantagem de criar procedimentos armazenados mysql é que você pode minimizar o risco potencial do programa armazenado e ver criação e uso. Para fazer isso, basta seguir essas diretrizes:

  • Use inventário de segurança sql na definição do objeto quando viável para uma rotina armazenada ou visualização, uma vez que isso só pode ser usado pelos usuários com as permissões apropriadas para as operações feitas pelo objeto.
  • Especifique um atributo DEFINIDO explícito ao criar programas ou visualizações armazenados no contexto do switch, ao usar uma conta que tem o privilégio SUPER, uma vez que esse atributo se referirá a uma conta que só tem os privilégios necessários para operações feitas pelo objeto. Só nos casos em que é absolutamente necessário, você poderia especificar uma conta definidor com muitos privilégios.
  • Evite que os usuários especifiquem contas DEFINER com muitos privilégios, algo que, como os administradores podem ser alcançados criando procedimentos armazenados mysql, desde que eles não são concedidos o privilégio SUPER.
  • Descreve objetos no contexto DEFINER considerando que eles podem acessar dados para os quais o usuário invocado não tem privilégios. Em alguns casos, você pode evitar fazer referência a esses objetos se você não conceder privilégios particulares a usuários não autorizados. Para isto, seria suficiente determinar que usuários sem o privilégio de execução não podem referenciar funções ou procedimentos armazenados e que os usuários com o privilégio apropriado nunca podem referenciar uma exibição (como seria o caso, como um exemplo, de SELECT para selecionar ou INSERIR para inserir).

Apesar disto, não se esqueça disso esses tipos de medidas de segurança ao criar procedimentos armazenados mysql não podem ser aplicados a gatilhos e eventos, porque eles não têm um recurso de segurança sql e sempre executado em um contexto de definição, por isso não há nenhum usuário para se referir a eles diretamente.

(função(d, s, Eu iria) {
var js, fjs = d.getElementsByTagName(s)[0];
E se (d.getElementById(Eu iria)) Retorna;
js = d.createElement(s); js.id = id;
js.src = “//connect.facebook.net/es_ES/all.js#xfbml=1&status = 0”;
fjs.parentNode.insertBefore(js, fjs);
}(documento, 'roteiro', 'facebook-jssdk'));

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.