Mudanças entre as edições de "Erro de Permissão ou Privilégio em Functions, Views e Procedures"
Linha 15: | Linha 15: | ||
create table teste (id int not null primary key auto_increment, data date); | 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 | + | 2. A procedure de exemplo, onde o '''USUARIO''' é o seu usuário do cPanel. O comando deve ser executado no terminal do MySQL. |
DELIMITER $$ | DELIMITER $$ | ||
− | CREATE DEFINER= | + | CREATE DEFINER='USUARIO'@'localhost' PROCEDURE `inserir`(data date) |
:BEGIN | :BEGIN | ||
::INSERT INTO teste VALUES (NULL,data); | ::INSERT INTO teste VALUES (NULL,data); | ||
Linha 25: | Linha 25: | ||
:END $$ | :END $$ | ||
DELIMITER ; | 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. | ||
+ | |||
Linha 30: | Linha 34: | ||
call inserir('2012-12-12'); | call inserir('2012-12-12'); | ||
+ | |||
+ | |||
+ | |||
+ | |||
[[Categoria:PROBLEMAS E ERROS]] | [[Categoria:PROBLEMAS E ERROS]] |
Edição das 17h06min de 15 de janeiro de 2016
- 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');