MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

2 participantes

    [Resolvido]Segurança - Não permitir cópia de tabelas

    avatar
    RJBeto
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3
    Registrado : 02/09/2017

    [Resolvido]Segurança - Não permitir cópia de tabelas Empty [Resolvido]Segurança - Não permitir cópia de tabelas

    Mensagem  RJBeto 2/9/2017, 17:58

    Boa tarde

    Estou com um Banco de Dados em Acces de uso em rede para multi-usuários com definições de acesso para cada tipo de usuário.

    O que fiz foi o seguinte:

    Dividi em duas bases, onde o que fica para o uso está com tabelas vinculadas do Banco Principal, que está escondido em outro local da rede.

    Coloquei uma senha para acesso ao banco de dados e um formulário de entrada (definido nas opções do banco como formulário de exibição) que em função de uma senha individual dá acesso à difentes formulários em função de seu perfil. Ao passar pelo formulário de entrada automaticamente a função Shift+Enter é desabilitada e só é habilitada quando é clicado em um local da tela que somente eu sei onde fica.

    Entretanto, percebo que mesmo com a techa Shift+Enter desabilitada, é possível abrir um novo Banco e através dele copiar as tabelas, fazer qualquer alteração e voltar com ela modificada em sua estrutura ou dados para o meu Banco de origem.

    Como posso bloquer a cópia de tabelas do meu Banco para um outro Banco?

    Tentei usar uma autoexec com SendKeys enviando a senha do Banco para que não fosse necessário a sua digitação e somente eu a pudesse conhecer. Mas... o SendKeys com a senha só entra depois de acessado o Banco e vai direto para o formulário de acesso individual.

    Grato
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7700
    Registrado : 15/03/2013

    [Resolvido]Segurança - Não permitir cópia de tabelas Empty Re: [Resolvido]Segurança - Não permitir cópia de tabelas

    Mensagem  Alvaro Teixeira 3/9/2017, 10:32

    Olá José Silva, Bem-Vindo ao fórum.

    Veja no link abaixo um excelente artigo do nosso colega Avelino Sampaio
    usandoaccess.com.br/tutoriais/seguranca-tabelas-vinculadas.asp
    Copiar link e colar no navegador

    Não se esqueça de ver o artigo sobre o OPEN (tem um link no final do artigo), no entanto posto abaixo também:
    usandoaccess.com.br/tutoriais/seguranca-microsoft-access-usando-o-open.asp
    Copiar link e colar no navegador

    Abraço
    avatar
    RJBeto
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3
    Registrado : 02/09/2017

    [Resolvido]Segurança - Não permitir cópia de tabelas Empty Olá ahteixeira

    Mensagem  RJBeto 3/9/2017, 16:12

    Ontem estive pesquisando vários artigos e já tinha visto alguns do Avelino também.
    Estava retornando para compartilhar minha solução e vi tua mensagem.
    Consegui resolver meu problema e compartilho o que fiz...
    Um abraço

    Fiz desta forma:
    O Banco BackEnd fica em rede protegido por senha.
    O Banco FrontEnd fica instalado em máquinas dos usuários, com tabelas vinculadas ao Back e com senha de acesso que à princípio o usuário deveria conhecer para poder usar.
    Para não fornecer a senha ao usuário criei um terceiro Banco que acessa ao Front, este com senha fornecida ao usuário, o qual chamei de “Abrir sistema”.
    O Banco Abrir Sistema é composto por:
    Uma Macro autoexec que chama a função Libera.
    Uma função Libera que envia comando com senha para abertura do Banco Front.
    Em caso de erro, por qualquer manipulação pelo usuário no endereço do Front, este fecha e envia mensagem para acionamento do administrador.
    Caso não tenha erro, o Front abre com os acessos vinculados ao Back e o “Abrir Sistema” fecha automaticamente.
    Desta forma o Front na máquina do usuário estará protegido porque este não sabe sua senha.
    Sem o acesso ao Front e também como o Back é protegido por senha, toda a estruturação do sistema e dados, estará protegida contra manipulações indesejadas.
    O banco “Abrir Sistema”, não permite o uso da tecla “Shift+Enter” e mesmo sabendo a senha de entrada, o usuário não poderá copiar o código por meio de outro banco paralelo porque os códigos VBA estão protegidos também por senha inserida em “Ferramentas; Propriedades database; Proteção com bloqueio do projeto para exibição”. Este mesmo tipo de bloqueio foi feito no Front e no Back.
    Seguem os códigos do banco Abrir Sistema
    Módulo AbrirMenu - Função Libera
    Function Libera()

    Const DB_Boolean As Long = 1 'DESABALITA SHIFT+ENTER
    ChangeProperty "AllowBypassKey", DB_Boolean, False 'DESABALITA SHIFT+ENTER

    Dim Pass As Variant
    Static objaccess As Access.Application
    Dim db As DAO.Database
    Pass = "SENHA DO MEU FRONT"
    Dim strDbName As String
    strDbName = "C:\ENDEREÇO DO MEU BANCO.accdb"
    Set objaccess = New Access.Application
    'On Error GoTo Sai 'HABILITA A CONDIÇÃO DE ERRO DE ENDEREÇO – SUGIRO FAZER UMA CÓPIA DESTE ANTES DE HABILITAR A SAÍDA EM CASO DE ERRO, POIS A TECLA SHIF+ENTER TAMBÉM ESTARÁ BLOQUEADA
    Set db = objaccess.DBEngine.OpenDatabase(strDbName, False, False, ";PWD=" & Pass)
    objaccess.OpenCurrentDatabase filepath:=strDbName
    objaccess.Visible = True

    'Retornasai: 'HABILITA A CONDIÇÃO DE ERRO DE ENDEREÇO
    DoCmd.Quit 'FECHA O "ABRIR SISTEMA"
    'Exit Sub 'HABILITA A CONDIÇÃO DE ERRO DE ENDEREÇO

    'Sai: 'HABILITA A CONDIÇÃO DE ERRO DE ENDEREÇO
    ' MsgBox "OCORREU ALGUM ERRO. PROCURE O ADMINISTRADOR DO SISTEMA!" 'HABILITA A CONDIÇÃO DE ERRO DE ENDEREÇO
    'Resume Retornasai 'HABILITA A CONDIÇÃO DE ERRO DE ENDEREÇO
    End Function
    '-------------------------------------------------------------------
    Function ChangeProperty(strPropName As String, varPropType As Variant, varPropValue As Variant) As Integer

    Dim dbs As Object, prp As Variant
    Const conPropNotFoundError = 3270

    Set dbs = CurrentDb
    On Error GoTo Change_Err
    dbs.Properties(strPropName) = varPropValue
    ChangeProperty = True

    Change_Bye:
    Exit Function

    Change_Err:
    If Err = conPropNotFoundError Then ' Propriedade não encontrada.
    Set prp = dbs.CreateProperty(strPropName, _
    varPropType, varPropValue)
    dbs.Properties.Append prp
    Resume Next
    Else
    ' Erro desconhecido.
    ChangeProperty = False
    Resume Change_Bye
    End If
    End Function

    avatar
    RJBeto
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3
    Registrado : 02/09/2017

    [Resolvido]Segurança - Não permitir cópia de tabelas Empty Re: [Resolvido]Segurança - Não permitir cópia de tabelas

    Mensagem  RJBeto 3/9/2017, 16:13

    Resolvido conforme anterior
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7700
    Registrado : 15/03/2013

    [Resolvido]Segurança - Não permitir cópia de tabelas Empty Re: [Resolvido]Segurança - Não permitir cópia de tabelas

    Mensagem  Alvaro Teixeira 3/9/2017, 19:18

    Olá José Silva,
    Que bom que conseguiu resolver.

    Obrigado pelo retorno e partilha da solução.
    O fórum agradece.

    Abraço

      Data/hora atual: 28/11/2022, 01:32