Jump to content
Fivewin Brasil

proteger os dbfs


gildo.rj

Recommended Posts

Meus Reis, tive um problema em um cliente que tem um funcionário meio xereta que conhece um pouquinho do Dbase e anda editando os dbfs e fazendo besteiras, agora pergunto eu, existe alguma função para deixar os dbfs disponiveis somente para o programa executavel?

caso existam são confiaveis ?

gildo de oliveira

Link to comment
Share on other sites

citação:

Meus Reis, tive um problema em um cliente que tem um funcionário meio xereta que conhece um pouquinho do Dbase e anda editando os dbfs e fazendo besteiras, agora pergunto eu, existe alguma função para deixar os dbfs disponiveis somente para o programa executavel?

caso existam são confiaveis ?

gildo de oliveira


id=quote>id=quote>

Bom antigamente eu alterava o cabaçalho do arquivo, porém não aconselho para rede (heheh)

Abraços

Vagner Wirts

São Paulo-Brasil

Link to comment
Share on other sites

Caro Amigo Gildo estou te Mandando uma LIB que tem uma funcao Assim :

a Funcao é EDBF()

Se Quizer proteger o ARQCLI.DBF

EDBF("ARQCLI.DBF",.T.)

Se Quizer proteger o ARQCLI.DBF

EDBF("ARQCLI.DBF",.F.)

se usar a funcao assim

ret = EDBF("ARQCLI.DBF")

retornara verdadeiro se pode usar o modo interativo

retornara falso se estiver bloqueado para este acesso ok

qual o seu e-mail

Link to comment
Share on other sites

// ------------------------------------------------------------------

// Programa ..: PROTEGER.PRG

// Descricao..: Protege um arquivo DBF/DBT para que nao possa ser lido

// por uma ferramenta externa. Para isto trocar o 1§.

// byte do arquivo incluindo-le 1.

// Autores ...: Grupo Eidos - libraria ABRAXAS

// ------------------------------------------------------------------

//#Include "FiveWin.Ch" // Para Clipper Puro, Comente Este Arquivo

#Include "FileIO.Ch"

#Define SOLODBF 3 // Se trata de um arquivo DBF sem DBT associado

#Define DBFDBT 131 // Se trata de um arquivo DBF com DBT associado

// ------------------------------------------------------------------

// Funcao ....: Proteger

// Descricao..: Protege um arquivo DBF/DBT

// Parametros : cFichero -> Nome do arquivo com extensao.

// Devolve ...: .T. ou .F.

// Notas .....: Executar a funcao antes de abrir o Arquivo para

// desproteger, e depois fechar para proteger.

// Em caso de nao poder abrir, executar 2 vezes a funcao.

// ------------------------------------------------------------------

FUNCTION Proteger( cFichero )

LOCAL nHandle := 0

LOCAL cByte := " "

LOCAL nByte := 0

// Controle erros parametros

IF ValType( cFichero ) != "C"

RETURN .F.

ENDIF

// Abrir, se tem erro devolver .F.

IF ( nHandle := fOpen( cFichero, FO_READWRITE ) ) = -1

RETURN .F.

ENDIF

// Ler, se tem erro devolver .F.

IF fRead( nhandle, @cByte, 1 ) != 1

RETURN .F.

ELSE

fSeek( nHandle, 0 )

ENDIF

nByte := Asc( cByte )

DO CASE

CASE nByte = SOLODBF // 3

IF fWrite( nHandle, Chr( SOLODBF + 1 ) ) != 1

RETURN .F.

ENDIF

CASE nByte = SOLODBF + 1 // 3 + 1

IF fWrite( nHandle, Chr( SOLODBF ) ) != 1

RETURN .F.

ENDIF

CASE nByte = DBFDBT // 131

IF fWrite( nHandle, Chr( DBFDBT + 1 ) ) != 1

RETURN .F.

ENDIF

CASE nByte = DBFDBT + 1 // 131 + 1

IF fWrite( nHandle, Chr( DBFDBT ) ) != 1

RETURN .F.

ENDIF

ENDCASE

RETURN fClose( nHandle )

// ------------------------------------------------------------------

// chame assim para proteger

// Proteger( "BANCO.DBF" ) // protegemos

// Desproteger Arquivo DBF --------------------------------------------

// Proteger( "BANCO.DBF" )

Proteger( "BANCO.DBF" ) // Primeiro desprotegemos

USE BANCO

IF lPack = .T.

PACK

ENDIF

INDEX ON Field->NOME TO BANCO

dbCloseArea()

Proteger( "BANCO.DBF" ) // Logo protegemos

// ---------------------------------------------------------------------

// Outro exemplo em CLIPPER puro...

/*

Função de proteção de arquivos de dados contra acessos indevidos. Em todos os

sistemas desenvolvidos há um grande dilema, como proteger os arquivos .DBF ?

Entre os usuários finais sempre há aquele curioso que acessa o banco de dados

e acabam danificando ou alterando os dados. Como esta função estes problemas

sao todos resolvidos, os arquivos são totalmente protegidos contra qualquer

acesso indevido, eles ficam disponíveis somente para o executável.

Autor: Emerson Borges dos Santos

Fone: 041-961-5884

Compilação Clipper Protege.prg

Linkedição Blinker Protege.obj

Ps: É recomendavel a utilização da função SETCALCEL(.F.), um cancelamento em

sua aplicativo usando o ALT+C causará  problemas, visto que os arquivos

encontram-se desprotegidos, causando erros na próxima chamada do programa

executavel.

*/

CLS

// Nome de seus bancos de dados, Dbase, fox, Dbu, nao abre nem a PAU!

// Troque os nomes sim? Coloque os nomes dos seus bancos.

PROT("ALUGADAS.DBF")

PROT("AVULSO.DBF")

PROT("CADCLI.DBF")

PROT("CADETIQ.DBF")

PROT("CAIXA.DBF")

PROT("CAIXA2.DBF")

PROT("CALCULA.DBF")

PROT("CONTROL1.DBF")

PROT("CONTROL2.DBF")

PROT("COPIA.DBF")

PROT("ENDER.DBF")

PROT("ENDERECO.DBF")

PROT("FP_PROV.DBF")

PROT("FUNC.DBF")

PROT("MENSA.DBF")

PROT("MENSA2.DBF")

PROT("MENSA3.DBF")

PROT("MENSA4.DBF")

PROT("MESA.DBF")

PROT("NASC.DBF")

PROT("NASCETIQ.DBF")

PROT("NOME.DBF")

PROT("NTICKET.DBF")

PROT("PERSON.DBF")

PROT("PRECOS.DBF")

PROT("PROD.DBF")

PROT("PROVIS.DBF")

PROT("TAB_PROV.DBF")

PROT("TAB_RESP.DBF")

PROT("TROCO.DBF")

@ 10,15 SAY "Os arquivos estão Protegidos, para desprotege-los execute"

@ 11,15 SAY " novamente este programa !!"

INKEY(0)

FUNCTION PROT()

PARAMETERS FILE

PRIVATE READ_BYTES, WRITE_BYTES, HANDLE, BUFFER

HANDLE = FOPEN(FILE,2)

IF HANDLE = -1

RETURN(.F.)

ENDIF

BUFFER = SPACE(01)

READ_BYTES=FREAD(HANDLE,@BUFFER,1)

IF READ_BYTES !=1

RETURN(.F.)

ENDIF

BUFFER=IIF(ASC(BUFFER)=3,CHR(4),IIF(ASC(BUFFER)=4,CHR(3),BUFFER))

BUFFER=IIF(ASC(BUFFER)=131,CHR(132),IIF(ASC(BUFFER)=131,CHR(132),BUFFER))

FSEEK(HANDLE,0,0)

WRITE_BYTES = FWRITE(HANDLE,BUFFER,1)

IF WRITE_BYTES !=1

RETURN(.F.)

ENDIF

FCLOSE(HANDLE)

RETURN(.T.)

// Veja no \samples TESTCRC.PRG e TEST14.PRG Modifique-os

// Espero tê-lo ajudado. Abraços.

João Santos

São Paulo-Brasil

(11) 3106-2832 a Noite

karinhannah@ubbi.com.br

Link to comment
Share on other sites

Valeu o apoio bad boy, acho que toda tentativa de união é valida porque a união faz açucar a força quem faz é o peão (he he he he), espero voce akiicon_smile_cool.gif .

Grande Mauricio, já tinha houvido falar desta lib, testei e deu tudo certo, muito obrigado irmão agora quero ver como se comporta em redes.

Abraços

gildo de oliveira

Link to comment
Share on other sites

Olá,

citação: agora quero convocar a galera do Rio e os manos de Sampa que queiram e que possam vir tomar umas conosco.
id=quote>id=quote>

Quanta discriminação hem? O pessoal de Minas e de outros estados, se puderem, não podem querer?icon_smile_shock.gif (brincadeira)

citação:agora quero ver como se comporta em redes.
id=quote>id=quote>

Logo que testar, poste o resultado, para podermos acompanhar. Se conseguir fazer este teste antes, postarei aqui.

[]s,

Evandro G. de Paula

Curvelo - MG

evandro@skillnet.com.br (Escr. - na Cidade)

imortal@skillnet.com.br (Res. - na Roça)

Link to comment
Share on other sites

Caros Amigos esqueci de citar um detalhe para rede tem que usar uma combinacao com o fopen

use o fopen para abrir o arquivo em modo exclusivo se falhar e porque algum outro terminal ja desprotegeu ok

a mesma coisa para proteger ao final do processo deixe sempre para o ultimo terminal

Abracos

Mauricio (RJ)

Link to comment
Share on other sites

  • 7 months later...

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...