Mudanças entre as edições de "Erro de Permissão ou Privilégio em Functions, Views e Procedures"
Linha 1: | Linha 1: | ||
+ | [[File:Banner-wiki-promocoes.gif|center| 700px||border|link=https://www.integrator.com.br/plano-hospedagem-promocionais|Planos promocionais|]] | ||
+ | |||
+ | |||
+ | ---- | ||
+ | ---- | ||
+ | ---- | ||
+ | |||
; Problema no mysql | ; Problema no mysql | ||
Edição das 19h19min de 28 de agosto de 2018
- Problema no mysql
Um erro comum no MySQL para usuários inexperientes é a permissão de Views, Functions e Procedures.
O MySQL diferencia na criação o acesso dando a permissão adequada, cujo o usuário terá permissão de acesso.
Todo objeto criado remotamente - View, Functions e Procedures - que não estiverem com o DEFINER informado, serão gerados com o usuário em condição de acesso remoto somente.
Todo objeto criado localmente, pelo phpMyAdmin, por exemplo - View, Functions e Procedures - que não estiverem com o DEFINER informado, serão gerados com o usuário em condição de acesso local somente.
O Exemplo mostrado abaixo é para entender como se faz a permissão para acesso local de determinado usuário - que deve ser considerado ao realizar o seu teste, colocando o seu do cPanel.
1. A Tabela de exemplo:
create table teste (id int not null primary key auto_increment, data date);
2. A procedure de exemplo, onde o USUARIO é o seu usuário do cPanel. O comando deve ser executado no terminal do MySQL.
DELIMITER $$ CREATE DEFINER='USUARIO'@'localhost' PROCEDURE `inserir`(data date) BEGIN INSERT INTO teste VALUES (NULL,data); END $$ DELIMITER ;
2.1 Se preferir usar o phpMyAdmin do cPanel, selecione o banco de dados na lateral direita. Depois clique em Rotinas. Em seguida, clique em Add routine. Na caixa de diálogo, preencha cada campo como a imagem informada a seguir.
3. Testando a procedure na hospedagem, seria assim:
call inserir('2012-12-12');