Mudanças entre as edições de "Erro de Permissão ou Privilégio em Functions, Views e Procedures"
(10 edições intermediárias de um usuário não apresentadas) | |||
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 | ||
− | + | Comum no '''MySQL''' para certos usuários, principalmente os que não estão acostumados a trabalhar com permissão, são os erros que ocorrem na importaçã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. | + | O '''MySQL''' diferencia, na criação de uma function ou procedure, por exemplo, 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 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. A condição remota no MySQL é indicada pela percentagem - '''%'''. |
− | 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. | + | 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, definido como '''localhost'''. |
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. | 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. | ||
Linha 15: | Linha 20: | ||
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. O comando | + | 2. A procedure de exemplo, onde o '''USUARIO''' é o seu usuário do cPanel. O comando pode ser executado no terminal do MySQL (você pode acessar o terminal do MySQL iniciando pelo [[Acessando SSH dentro do cPanel|terminal SSH]]). |
− | + | <pre> | |
DELIMITER $$ | DELIMITER $$ | ||
CREATE DEFINER='USUARIO'@'localhost' PROCEDURE `inserir`(data date) | CREATE DEFINER='USUARIO'@'localhost' PROCEDURE `inserir`(data date) | ||
− | + | BEGIN | |
− | + | INSERT INTO teste VALUES (NULL,data); | |
− | + | END $$ | |
DELIMITER ; | DELIMITER ; | ||
+ | </pre> | ||
+ | 2.1 Também pode fazer uso do SQL dentro do phpMyAdmin do cPanel. Porém, não há necessidade do DELIMITER. | ||
− | 2. | + | 2.2 Se preferir usar o phpMyAdmin do cPanel para criar procedures, ou functions, 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. | Na caixa de diálogo, preencha cada campo como a imagem informada a seguir. | ||
+ | [[Arquivo:2016-01-15 14-55-34.jpg]] | ||
3. Testando a procedure na hospedagem, seria assim: | 3. Testando a procedure na hospedagem, seria assim: | ||
− | call inserir('2012-12-12'); | + | call inserir('2012-12-12'); |
Linha 40: | Linha 48: | ||
[[Categoria:PROBLEMAS E ERROS]] | [[Categoria:PROBLEMAS E ERROS]] | ||
+ | [[Categoria:BANCO DE DADOS]] | ||
+ | [[Categoria:TUTORIAIS]] | ||
+ | [[Categoria:MYSQL]] |
Edição atual tal como às 15h54min de 8 de julho de 2023
- Problema no mysql
Comum no MySQL para certos usuários, principalmente os que não estão acostumados a trabalhar com permissão, são os erros que ocorrem na importação de Views, Functions e Procedures.
O MySQL diferencia, na criação de uma function ou procedure, por exemplo, 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. A condição remota no MySQL é indicada pela percentagem - %.
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, definido como localhost.
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 pode ser executado no terminal do MySQL (você pode acessar o terminal do MySQL iniciando pelo terminal SSH).
DELIMITER $$ CREATE DEFINER='USUARIO'@'localhost' PROCEDURE `inserir`(data date) BEGIN INSERT INTO teste VALUES (NULL,data); END $$ DELIMITER ;
2.1 Também pode fazer uso do SQL dentro do phpMyAdmin do cPanel. Porém, não há necessidade do DELIMITER.
2.2 Se preferir usar o phpMyAdmin do cPanel para criar procedures, ou functions, 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');