Criando um Sistema de Login e Senha com nível de acesso e LOG com Delphi
Neste tutorial será criado um formulário de login e nível de acesso com banco de dados em Access para que você possa proteger seu sistema impedindo a entrada de pessoas não autorizadas ou limitando o acesso a determinadas partes do sistema. O banco utilizado é o Microsoft Access, mas serve para utilização de qualquer outro banco de dados.
Crie um Banco em Access e crie a tabela tbLogin
Tabela Login
Vamos definir o Nível do Usuário ( 0 – Usuário Comum | 1 – Administrador )
Projeto
Crie um projeto VCL Forms Application – Delphi for Win32
Renomei o nome do Form1 para frmLogin
Nele adicione os seguintes Componentes da Paleta: Standard:
Componente | Name | Text | Caption | Properties |
---|---|---|---|---|
Edit1 | edtLogin | Vazio | --- | --- |
Edit2 | edtSenha | Vazio | --- | PasswordChar * |
Label1 | lblLogin | --- | Login | --- |
Label2 | lblSenha | --- | Senha | --- |
Button1 | btnAcessar | --- | Acessar | --- |
Salve Formulário de Login » pas.Login
Formulário Principal
Adicione um novo Form. ( File » New » Form – Delphi for Win32 )
Renomeie o nome do Form2 para frmPrincipal
Adicione os seguintes Componentes da Paleta: Standard:
Componente | Name | Caption |
---|---|---|
Label1 | lblAcesso | Você entrou no sistema! |
Label2 | lblNivelAcesso | --- |
Button1 | btnCadastrar | Cadastrar |
Button2 | btnAlterar | Alterar |
Button3 | btnExcluir | Excluir |
No Evento OnClose adicione
Application.Terminate;
Salve o Formulário Principal » pas.Principal
Data Module
Adicione um Data Module: File » New » Other… » Delphi Files » Data Module
Altere o nome do DataModule para DM
Adicione os componentes das Paletas: dbGo e Data Access:
Componente | Instruções |
---|---|
ADOConnection | Conecte o banco Access; LoginPrompt = False; Ative a conexão do ADOConnection |
ADOQuery | Conecte ao ADOConnection, Inclua o SQL (SELECT * FROM tbLogin) e Ative o ADOQuery |
DataSource | Ligue em Database para ADOQuery |
De dois cliques no ADOConnection e depois em Build…
Escolha Microsoft Jet 4.0 OLE DB Provider e clique em Avançar
Clique na Aba Conexão escolha o local do Banco de dados e teste a conexão.
No ADOQuery adicione o comando SQL em:
Inclua o SELECT abaixo:
SELECT * FROM tbLogin
De um duplo clique em ADOQuery:
Clique com o Botão Direito do Mouse dentro da janela que ira abrir » Add all Fields
Salve o Data Module » pas.DataModule
Adicionando o Formulário Principal e o Data Module ao Formulário de Login:
No frmLogin inclua o frmPrincipal e o Data Module clicando em: File » Use Unit… ou Alt+F11 e escolha o Form de Principal e o Data Module » OK.
Adicionando o Data Module ao Formulário Principal:
No frmPrincipal inclua o Data Module clicando em: File » Use Unit… ou Alt+F11 e escolha apenas o Data Module » OK.
Adicionando o Código no btnAcessar no Formulário de Login:
No Button btnAcessar do frmPrincipal de um duplo clique e adicione o código abaixo:
DM.ADOQuery.Close; DM.ADOQuery.SQL.Text := 'SELECT * FROM tbLogin WHERE Login = "'+edtLogin.Text+'" and Senha = "'+edtSenha.Text+'"'; DM.ADOQuery.Open; if DM.ADOQuery.RecordCount > 0 then begin frmPrincipal.Show; frmLogin.Visible := False; end else begin ShowMessage('Login ou Senha Errada!'); edtLogin.SetFocus; end;
Salve o Projeto » Login
Adicionando o Privilégio ao Formulário Principal:
Basta no Evento OnShow adicionar e definir o que pode ser visto ou não de acordo com o privilégio.
Exemplo:
Vamos supor que o Usuário Comum possa Cadastrar, mas não possa Alterar nem Excluir. Já o Administrador poderá fazer tudo.
Então no Evento OnShow do frmPrincipal adicione:
{ Se o Nivel de Usuário não for igual a 0 Desativa os Botões Alterar e Excluir } if (DM.ADOQueryNivel.Value = 0) then begin btnCadastrar.Enabled := True; btnAlterar.Enabled := False; btnExcluir.Enabled := False; lblNivelAcesso.Caption := 'Usuário Comum'; exit end else // Senão: Libera todos os Botões begin btnCadastrar.Enabled := True; btnAlterar.Enabled := True; btnExcluir.Enabled := True; lblNivelAcesso.Caption := 'Administrador'; end;
Administrador:
Abra o Banco Access e Adicione um Login e uma Senha qualquer ( Login: adm | Senha: adm : Privilégio: 1 )
Ao fazer o Login ( Login: adm | Senha: adm )
Usuário Comum:
Abra o Banco Access e Adicione um Login e uma Senha qualquer ( Login: fulano | Senha: 123 : Privilégio: 0 )
Ao fazer o Login ( Login: fulano | Senha: 123 )
Já o Usuário comum tem apenas acesso ao botão Cadastrar ficando os botões Alterar e Excluir desativados.
Login ou Senha Errada:
Caso o Login ou a Senha estiverem errados irá exibir a mensagem de erro.
Criando LOG:
Para criar o registro de entrada e saída do usuário no sistema utilize o tutorial abaixo:
Criando Log de Entrada e Saída do Usuário com Delphi
Protegendo Banco:
Para proteger o banco recomenda-se utilizar uma criptografia da senha ou apenas definir uma senha no banco Access. Se já definiu uma senha no banco poderá abri-lo conforme procedimento abaixo:
Como Carregar um Banco Access com Senha