Jump to content
Fivewin Brasil

COMO PROTEGER O BANCO DE DADOS


kapiaba

Recommended Posts

citação:

Olá,

Feliz Natal pra todos,

Aqui funcionou muito bem icon_smile_wink.gif, logicamente eu fiz algumas mudanças icon_smile.gif

Inclusive em simulando uma rede icon_smile_wink.gif

Vagner Wirts

VI Encontro está chegando icon_smile_big.gif, não perca icon_smile_big.gif


id=quote>id=quote>

Por favor Carissimo, poste as mudanças, pois ANO QUE VEM, pretendo usar este tipo de PROTEÇÃO, seja o mais simples possivel, pois inteligencia, não é meu forte! hehehehehe

Abraços, e UM FELIZ NATAL, E UM ANO NOVO, DO PERÚ PARA VOCÊ E SUA LINDA FAMILIA!! Meus melhores desejos. Você, sempre do LADO ESQUERDO do PEITCHO!!

João Santos - São Paulo.

kmt_karinha@pop.com.br

kapiaba@brfree.com.br

Fone: (11) 3106-2832

FWH 2.7 - xHARBOUR 0.99.61 - WorkShop.Exe

Link to comment
Share on other sites

Olá,


/*********************************************************

* Função : DbProtect() - Funcao para Proteger os DBFS para abertura externa

* Programador : vagner

* Data : 19/12/2008 - 10:56:01

* Revisado em : 19/12/2008 - 10:56:03 Por : vagner

* Parâmetros :

* cDbf - Arquivo pra proteger

* lPro - Se Protege ou desprotege - Default .T.-Protege

**********************************************************/

Func DbProtect(cDbf,lPro)

Local nHandle := 0, cFile

Local cBuffer := Space(32)

Default lPro := .T.

cFile := cDbf+".Dbf"

If File(cFile)

nHandle := FOpen(cFile,66)

If nHandle # -1

If FRead(nHandle,@cBuffer,32) == 32

If lPro // Proteger

If SubStr(cBuffer,1,1) # Chr(26)

cBuffer := Chr(26)+SubStr(cBuffer,1,31)

Endif

Else // Desproteger

If SubStr(cBuffer,1,1) == Chr(26)

cBuffer := SubStr(cBuffer,2,31)+ Chr(0)

Endif

Endif

FSeek(nHandle,0)

FWrite(nHandle,cBuffer,32)

Endif

FClose(nHandle)

Endif

Endif

Retu (NIL)

id=code>id=code>

Como Usar :


DbProtect("SeuArquivo",.F.) //Desprotege o arquivo

If lExcl

Use ("SeuArquivo") New Exclu Alias ...

Else

Use ("SeuArquivo") New Share Alias ...

Endif

DbProtect("SeuArquivo",.T.) //Protege o arquivo

id=code>id=code>

Vagner Wirts

VI Encontro está chegando icon_smile_big.gif, não perca icon_smile_big.gif

Link to comment
Share on other sites

Olá Vagnão, Blz ???

vi que vc testou simulando uma rede e não teve problema algum???

Exemplo:

abro o arquivo e começo a fazer alterações em outra estação abro o mesmo arquivo -> consulto -> fecho o arquivo antes da alteração fechar, pergunta que não quer calar, rsrsrsr, ele vai proteger o arquivo antes que a alteração seja gravada e isso não vai dar problema????

Alessandroid=blue>

FW20d+CL53b+Blk7+@Say+CDX

"Nós nos transformamos naquilo que praticamos com freqüência.

A perfeição, portanto, não é um ato isolado e sim um hábito".

id=red>

Link to comment
Share on other sites

citação:

Olá Vagnão, Blz ???

vi que vc testou simulando uma rede e não teve problema algum???

Exemplo:

abro o arquivo e começo a fazer alterações em outra estação abro o mesmo arquivo -> consulto -> fecho o arquivo antes da alteração fechar, pergunta que não quer calar, rsrsrsr, ele vai proteger o arquivo antes que a alteração seja gravada e isso não vai dar problema????

Alessandroid=blue>

FW20d+CL53b+Blk7+@Say+CDX

"Nós nos transformamos naquilo que praticamos com freqüência.

A perfeição, portanto, não é um ato isolado e sim um hábito".

id=red>


id=quote>id=quote>

Tai uma boa pergunta! também quero saberlo.

FELIZ NATAL PARA TODOS!

João Santos - São Paulo.

kmt_karinha@pop.com.br

kapiaba@brfree.com.br

Fone: (11) 3106-2832

FWH 2.7 - xHARBOUR 0.99.61 - WorkShop.Exe

Link to comment
Share on other sites

Olá,

Pelo que pude ver, qndo vc desprotege o arquivo, e abre, ele fica aberto na memória, então não vai dar problema algum icon_smile_wink.gif, eu abri o exe, entrei no programa, abri outra vez o exe e entrei consultei sem problemas icon_smile_wink.gif, mas não custa testar novamente não é ? icon_smile_big.gif

Vagner Wirts

VI Encontro está chegando icon_smile_big.gif, não perca icon_smile_big.gif

Link to comment
Share on other sites

Olá pessoal,

É isso mesmo que o Vagner falou. O dbf fica aberto em memória e por isso para os outros que acessam não muda em nada. Funcionou aqui 100%.

Aproveitando o ensejo para desejar um FELIZ NATAL para todos vocês, que Deus abençoe a cada um.

Abraços,

Kleyber Derick

xHarbour 1.1.0 + FWH 8.02 (BMW Zerada!!!) + xDevStudio + SQLLIB

Visite São Luís - MA A Ilha dos Amores

Link to comment
Share on other sites

citação:

Olá pessoal,

É isso mesmo que o Vagner falou. O dbf fica aberto em memória e por isso para os outros que acessam não muda em nada. Funcionou aqui 100%.

Aproveitando o ensejo para desejar um FELIZ NATAL para todos vocês, que Deus abençoe a cada um.

Abraços,

Kleyber Derick

xHarbour 1.1.0 + FWH 8.02 (BMW Zerada!!!) + xDevStudio + SQLLIB

Visite São Luís - MA A Ilha dos Amores


id=quote>id=quote>

Vc Fez commit???

Se esta na Memoria como vai buscar dados de outra estação que acabou de cadastrar?????

Marcelo Michels

marcelo@infototal.com.br

celo.michels@hotmail.com

xHarbour 1.1 + Fwh 8.01 + WorkShop + Bcc 5.82 + WvwTools + SQLRDD + xMate.

Link to comment
Share on other sites

citação:

citação:

Olá pessoal,

É isso mesmo que o Vagner falou. O dbf fica aberto em memória e por isso para os outros que acessam não muda em nada. Funcionou aqui 100%.

Aproveitando o ensejo para desejar um FELIZ NATAL para todos vocês, que Deus abençoe a cada um.

Abraços,

Kleyber Derick

xHarbour 1.1.0 + FWH 8.02 (BMW Zerada!!!) + xDevStudio + SQLLIB

Visite São Luís - MA A Ilha dos Amores


id=quote>id=quote>

Vc Fez commit???

Se esta na Memoria como vai buscar dados de outra estação que acabou de cadastrar?????

Marcelo Michels

marcelo@infototal.com.br

celo.michels@hotmail.com

xHarbour 1.1 + Fwh 8.01 + WorkShop + Bcc 5.82 + WvwTools + SQLRDD + xMate.


id=quote>id=quote>

COMO???id=size5>

Mesmo assim, uma boa PERGUNTA!

João Santos - São Paulo.

kmt_karinha@pop.com.br

kapiaba@brfree.com.br

Fone: (11) 3106-2832

FWH 2.7 - xHARBOUR 0.99.61 - WorkShop.Exe

Link to comment
Share on other sites

Olá,

Kbelo, veja bem, o acesso está na memória, não o arquivo, e funcionou perfeitamente, alterei o registro e no outro já apareceu a alteração icon_smile_wink.gif

Outra coisa, tente não lhe custa nada, pois provavelmente vc possui uma rotina de abertura de arquivos, basta incluir essa função que postei alterada, e fazer do jeito q eu expliquei.

Pelo menos aqui funcionou muito bem, 100%, e mesmo com o exe aberto, não se consegue entrar pelo dbu, fox, x-dev, excel, nem nada icon_smile_big.gif

Vagner Wirts

VI Encontro está chegando icon_smile_big.gif, não perca icon_smile_big.gif

Link to comment
Share on other sites

Olá novamente icon_smile_big.gif

Retificando, o que ocorre é o seguinte :

Se vc altera ou exclui o registro, ele continua protegido

Se vc dá um appen blank, ele desprotege o arquivo, pois muda o cabeçalho do dbf, então seria mais ou menos isso :

Na hora de dar um append vc desprotege o arquivo, dá o appende e depois protege novamente que irá ficar 100% icon_smile_big.gif

Vagner Wirts

VI Encontro está chegando icon_smile_big.gif, não perca icon_smile_big.gif

Link to comment
Share on other sites

Nossa !!! Sem palavras. Estou pasmo !!!

FUNCIONA BELEZA !!!

A tempos venho aqui mesmo procurando uma solução para proteger DBFs.

Meus queridos, agora pensem comigo:

Os DBFs são extremamente velozes, mas pecava na segurança, qualquer um editava o arquivo, dava TYPE e aparecia tudo, deste a estrutura até os dados dos campos, isso ERA um problema.

Agora com essa rotina, nem com TYPE, nem com DBU, nem com ACCESS aparece alguma coisa. Tudo fica escondido e protegido.

E digo mais, testei na rede e funciona muito bem.

Vagner, realmente com o APPEND BLANK ele desbloqueia automático, mas é como você disse, é só bloquear novamente depois dele que tá tudo protegido novamente.

Em fim, uma solução, mesmo com o sistema aberto e usando o arquivo, este mesmo esta bloqueado externamente !!!

Não sei se estou exagerando, mas agora o DBF não deve muito para o SQL. "acesso via internet ??", use CGI+HTML e nem precisa o acesso no sistema todo, faz apenas o que interessa para ficar on-line, com uma simples página HTML+CGI, tem o WebWap do Vagucs que tá show, e tem outros.

E as senhas encyptadas no campo do dbf !!! agora nem precisa mais encryptar, é só bloquear e pronto, TUDO fica oculto inclusive o campo senha. rs !!!

Maravilha !!! Parabéns !!!

Só uma dúvida:

Os comandos a seguir, faz o bloqueio/desbloqueio. Mas se algum expert em clipper, fizer um .exe com esses códigos e direcionar para o DBF.... o mesmo não será desbloquado??

Mesmo assim, já tá bom dimais.

If FRead(nHandle,@cBuffer,32) == 32 If lPro // Proteger If SubStr(cBuffer,1,1) # Chr(26) cBuffer := Chr(26)+SubStr(cBuffer,1,31) Endif Else // Desproteger If SubStr(cBuffer,1,1) == Chr(26) cBuffer := SubStr(cBuffer,2,31)+ Chr(0) Endif Endif FSeek(nHandle,0) FWrite(nHandle,cBuffer,32) Endif FClose(nHandle)

Agora, vamos ver o que mais dizem.

Abraços.

Hélio

xHarbour/WS/PellesC

Link to comment
Share on other sites

Boa noite a todos, me esclareçam uma duvida, e se faltar energia ? estou fazendo essa pergunta por que já usei alguns desses recursos, quando carregava o exe ele desprotegia os dbfs e ao sair ele protegia novamente mas quando faltava energia ao voltar eles estavam sem a proteção.

FWH 8.08/XHB1.1/Pelles/Mysql/fastreport

laurentinocarlos@gmail.com

Montes Claros MG

Editado por - laurenti on 19/12/2008 23:25:18

Link to comment
Share on other sites

laurenti e lailton.webmaster,

Pode faltar energia com o sistema aberto.

Pode dar CTRL+ALT+DEL e fechar o programa.

Nada disso ira afetar, pois o banco de dados fisicamente esta protegido, o que acontece é que a desproteção fica apenas na memória, quando vc faz isso:

Desprotege("C:\clientes.DBF") //função que vc cria para desproteger

USE CLIENTES ALIAS SHARED...

INDEX ON....

Protege("C:\clientes.DBF") //função que vc cria para proteger

.

.

Depois disso pode seguir seu sistema normalmente, até em rede, gravando, excluindo, que o banco de dados estará protegido lá no D.O.S. e mesmo assim será atualizado, não me pergunte como, mas os testes que fiz aqui provaram isso.

Conclusão:

O tempo todo o DBF fica protegido, quando nos referimos à ele via sistema como acima, o mesmo abre na memória e pode fazer as manipulações que precisar, Por isso pode "quebrar" o sistema aberto no meio, que o banco estará protegido na volta.

Uma Idéia:

Como os "programadores" as vezes precisam dos DBFs desprotegidos para pesquisas no DBU etc.., pode-se criar um .EXEzinho só para desproteger ou proteger TODO o conteúdo da pasta dos DBFs, aí faz-se o que precisa e depois é só executar o .EXEzinho para proteger novamente. Isso Ajudará muito. E servirá para dar partida no sistema, já protegendo todos dbfs da pasta, indepedente da rotina de abertura como acima.

Gostaria que mais de vocês fizessem o teste de proteção, e comentassem.

Kapiaba, que presente heim amigo !!!!

FELIZ NATAL PARA TODOS !!!

QUE DEUS NOS ABENÇOE.

Abraços.

Hélio

xHarbour/WS/PellesC

Link to comment
Share on other sites

Olá Pessoal,

1ªmente, boas festas a todos icon_smile_big.gif

2ªmente, o que vcs têm q ter em mente é q o dbf, só é desprotegido para a abertura, depois de aberto basta proteger novamente, ficando assim, sempre protegido icon_smile_wink.gif, pode-se desligar o micro, acabar a energia CTRL+ALT+DEL, gerenciador de tarefas e mandar fechar o exe, ou qq outra coisa que inventarem icon_smile_big.gif

3ªmente, Hélio, não testei totalmente a rotina, mas creio q com umas mudanças no CHR(), fique mais difícil de qq um saber, no exemplo ele coloca chr(26), pelo exemplo que ele coloca é feito o seguinte :

Para proteger, ele pega a string e acrescenta o CHR(26), e para desproteger ele elimina esse Chr(26) e coloca o Chr(0), no final da string. Bom, se não me engano o Chr() default do DBF é o 3, então retirando o primeiro e trocando para qualquer outro chr ele deverá funciona, contanto que não seja o 3 icon_smile_wink.gif

É uma questão de se testar icon_smile_wink.gif

Vagner Wirts

VI Encontro está chegando icon_smile_big.gif, não perca icon_smile_big.gif

Link to comment
Share on other sites

Para mim o maior problema não é impedir a abertura do dbf, mas sim protege-lo mesmo.

Pois para ser usado precisa ser mapeado, se está mapeado, inclusive com direitos de leitura e gravação, qualquer usuário pode queimar o dbf, ou como aconteceu em um clientes, arrasta-lo para uma outra pasta (e foi sem ele perceber) e aí o sistema virar uma bagunça.

logo.gif

Link to comment
Share on other sites

Da sim, se vc tiver o programa edsetor.exe e ou coisa parecida e saber qual o numero que ele troca e vc colocar o numero anterior e igual do dbf, ele vai retornar e abrir o arq. nao e totalmente seguro nao, pode testar por exe..

se o arquivo .dbf tiver o arq. memo .dbt e um numero diferente e o arq.dbf tiver o ar.memo .fpt. e outro numero, ele sozinho e um numero, se vc souber qual o numero do dbf normal pode ter certeza que mesmo alterando o chr dele volta a funcionar,,, mas so usei uma vez testando com o edsetor , fora isso programa em visual nao sei dizer tipo u sourceracker por exemplo... mas fique tranquilo o cara tem que entender o que ele grava no inicio do arquivo, como eu disse eu uso para proteger algumas coisa no arq do word, no dbf eu tenho medo, vai que da pau no dbf,,, e nao tenho um foxplus ou dbase para recuperar perco o banco de dados.

luis

Link to comment
Share on other sites

citação:

Para mim o maior problema não é impedir a abertura do dbf, mas sim protege-lo mesmo.

Pois para ser usado precisa ser mapeado, se está mapeado, inclusive com direitos de leitura e gravação, qualquer usuário pode queimar o dbf, ou como aconteceu em um clientes, arrasta-lo para uma outra pasta (e foi sem ele perceber) e aí o sistema virar uma bagunça.

logo.gif


id=quote>id=quote>

Olá,

Para isso, basta vc criar o diretório oculto icon_smile_wink.gif, o sistema irá encontrar, mas não apresenta para o usuário icon_smile_big.gif

Vagner Wirts

VI Encontro está chegando icon_smile_big.gif, não perca icon_smile_big.gif

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...