Jump to content

Divisão da base de dados com encriptação


amilq
Go to solution Solved by Luis_vxd,

Recommended Posts

Olá amigos;

Eu terminei um projeto para distribuição e tenho uma dúvida, para a qual peço a vossa ajuda.

Tenho instalada a versão 2019 do Office.

Passos de segurança realizados:

1) Compilei o código VB da base de dados.

2) Desabilitei a tecla Shift por código num formulário escondido. Criei um atalho num formulário, de forma que não é percetível. Esse atalho leva ao formulário com dois botões. Um para habilitar e o outro para desabilitar o SHIFT. Está a funcionar muito bem. O utilizador entra no formulário de login, escolhendo o nome de utilizador e inserindo a palavra passe.  Se tentar entrar com Shift, vai direto ao login.

3) Converti a base de Accdb para Accde. Desta forma o utilizador não tem acesso ao código, para o caso de se abrir a janela para debug.

Agora eu queria dividir a base em back-end e front-end. Sei como o fazer, mas  pergunto:

É possível o utilizador continuar a entrar no login da front-end, escolhendo o nome e inserindo a palavra passe e encriptar só a back-end, para impedir o acesso?

Sei que mesmo assim é possível entrar na bd, mas já ficaria com uma segurança aceitável.

Um grande abraço;

Joaquim

 

Edited by amilq
Link to comment
Share on other sites

  • Solution

Bom dia Joaquim

O BE (back-end) é uma base de dados normal que precisa de ser protegida.
Tudo o que fez está perfeito para o FE (front-end) mas depois de separar o BE fica sem proteção. O método mais comum é proteger o BE com uma password e depois 're-link' o FE.

Este processo de re-link tem de ser feito cada vez que a BD é mudada de um sítio para outro seja dentro do mesmo computador (para outra pasta) ou para outro computador.

Sugiro que em VBA crie uma rotina, que é executada sempre que o FE arranca, para verificar o link e refazê-lo caso a BD tenha sido mudada.

Boa sorte.

Cumprimentos

Luis
https://programar-excel.pt

Link to comment
Share on other sites

Bom dia Luís.

Não sei como fazer a rotina, mas vou procurar ajuda para isso. Se pudesse ajudar-me na rotina seria ótimo, mas se não puder não faz mal. Agora sei os passos necessários para o que queria fazer.

Obrigado e boas festas.

Um abraço.

Joaquim 

Edited by amilq
Acrescentei mais texto.
Link to comment
Share on other sites

Public Function AtualizaVinculos(EndBackend As String) As Boolean
'Atualiza os vínculos
Dim db As dao.Database
Dim tdf As dao.TableDef
Dim strResultado As String

Set db = CurrentDb()

For Each tdf In db.TableDefs
    If tdf.Connect <> "" Then
        If tdf.Connect <> EndBackend Then
            tdf.Connect = ";Database=" & EndBackend
        End If
        On Error Resume Next
        tdf.RefreshLink
        If Err <> 0 Then
            strResultado = strResultado & tdf.Name & vbCrLf
            Err.Clear
        End If
        
    End If
Next tdf

If strResultado = "" Then
    AtualizaVinculos = True
Else
    MsgBox "As seguintes tabelas não foram vinculadas:" & _
    vbCrLf & strResultado, vbCritical, "Erro"
    AtualizaVinculos = False
End If
End Function

 

Link to comment
Share on other sites

Bom dia ,

Nao sei como desenhou a sua base de dados, no meu caso tenho num botao de um formulario, mas voce poderia colocar em algum evento do seu formulario Login

A Funcao AtualizaVinculos , retorna uma variavel do tipo Boolean ( true ou false)

Assim que no seu formulario de Login, poderia executar algo parecido com o seguinte :

If Len(Nz(Me.EnderecoBackend, " "))) > 0 Then
    If AtualizaVinculos(Me.EnderecoBackend) = True Then
        MsgBox "Vínculos actualizados com sucesso.", vbInformation
        Me.VerificarVinculos = 0
    End If
Else
    MsgBox "Arquivo não encontrado", vbCritical, "Erro"
End If

Claro que devera tambem criar um campo de texto (EnderecoBackEnd), que recolha o campo na sua tabela onde identifica o path que contem  o caminho para o seu back end, ou como opçao tambem pode criar um botao com janelas de dialogo para esse path

 

Edited by carlosAl
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.