Erro de Permissão ou Privilégio em Functions, Views e Procedures

De Wiki Integrator do Brasil
Edição feita às 16h05min de 21 de agosto de 2014 por Integratorhost (disc | contribs)

(dif) ← Edição anterior | ver versão atual (dif) | Versão posterior → (dif)
Ir para: navegação, pesquisa

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:

DELIMITER $$

CREATE DEFINER=‘USUARIO’@‘localhost' PROCEDURE `inserir`(data date)

BEGIN
INSERT INTO teste VALUES (NULL,data);
END $$

DELIMITER ;


3. Testando a procedure na hospedagem, seria assim:

call inserir('2012-12-12');