Advertisement
jacknpoe

Procedimentos e Funções com Senhas em mySQL (MariaDB)

May 17th, 2016
284
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 1.78 KB | None | 0 0
  1. DELIMITER |
  2. CREATE OR REPLACE PROCEDURE InserirUsuario(
  3.     Nome VARCHAR( 50), Senha VARCHAR( 100), Descricao VARCHAR( 500), Inicio DATE, Fim DATE, Inativo TINYINT) DETERMINISTIC MODIFIES SQL DATA
  4. BEGIN
  5.     ###### VARIÁVEL CÓDIGO TEMPORÁRIO
  6.     DECLARE CodigoUsuario INT DEFAULT 0;
  7.  
  8.     ###### COMEÇA A TRANSAÇÃO (E O CÓDIGO REAL) AQUI
  9.     START TRANSACTION;
  10.  
  11.     ###### ENCONTRA O PRIMEIRO PRÓXIMO CÓDIGO USADO PARA INCLUIR REGISTROS
  12.     SELECT MAX( CD_Codigo) INTO CodigoUsuario FROM Usuario;
  13.     SET CodigoUsuario := IFNULL( CodigoUsuario, 0) + 1;
  14.  
  15.     ###### INSERE UM ESTOQUE COM O NOVO CÓDIGO
  16.     INSERT INTO Usuario ( CD_Codigo, DS_Nome, BN_Senha, DS_Descricao, DT_Inicio, DT_Fim, LG_Inativo)
  17.         VALUES ( CodigoUsuario, Nome, PASSWORD( Senha), Descricao, Inicio, Fim, Inativo);
  18.    
  19.     ###### O CÓDIGO REAL TERMINA AQUI, ENTÃO COMMITAMOS A TRANSAÇÃO
  20.     COMMIT;
  21. END |
  22. _______________________________________________________________________________________________________________________________________________________________________________
  23.  
  24. DELIMITER |
  25. CREATE OR REPLACE PROCEDURE AlterarSenha( Codigo INTEGER, Senha VARCHAR( 100)) DETERMINISTIC MODIFIES SQL DATA
  26. BEGIN
  27.     UPDATE Usuario SET BN_Senha = PASSWORD( Senha) WHERE CD_Codigo = Codigo;
  28. END |
  29. _______________________________________________________________________________________________________________________________________________________________________________
  30.  
  31. # RETORNA 1 SE A SENHA É CORRETA, 0 SE INCORRETA
  32. DELIMITER |
  33. CREATE OR REPLACE FUNCTION CompararSenha( Codigo INTEGER, Senha VARCHAR( 100)) RETURNS TINYINT DETERMINISTIC
  34. BEGIN
  35.     DECLARE SenhaRecuperada CHAR( 41);
  36.  
  37.     SELECT BN_Senha INTO SenhaRecuperada FROM Usuario WHERE CD_Codigo = Codigo;
  38.  
  39.     Return IF( SenhaRecuperada IS NULL, 0, PASSWORD( Senha) = SenhaRecuperada);
  40. END |
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement