Seguridad en acceso a dbfs

Post Reply
Marco Augusto
Posts: 122
Joined: Wed Oct 12, 2005 1:03 pm
Location: Cuernacava, Morelos Mexico

Seguridad en acceso a dbfs

Post by Marco Augusto »

Existe alguna forma de deshabilitar el
acceso a archivos dbf desde excel?


Gracias
Marco Augusto Rodriguez Manzo
fwh 2020 Xharbour 1.2.3
MySQL 5.0.19 Fastreport

PERZO SOFT
Sistemas Personalizados
R.F.
Posts: 840
Joined: Thu Oct 13, 2005 7:05 pm

Post by R.F. »

No es posible, no hay forma de manipular excel para que no lea archivos DBFs.

Lo que nosotros hicimos fue encriptarlos con ADS y se acabo el problema, Excel no reconoce el formato encriptado de Advantage.

La solucion definitiva fue cambiar los DBF por tablas ADT, y ahi si, ni excel les mete mano.
Saludos
R.F.
Marco Augusto
Posts: 122
Joined: Wed Oct 12, 2005 1:03 pm
Location: Cuernacava, Morelos Mexico

Post by Marco Augusto »

gracias Rene
Marco Augusto Rodriguez Manzo
fwh 2020 Xharbour 1.2.3
MySQL 5.0.19 Fastreport

PERZO SOFT
Sistemas Personalizados
Rochinha
Posts: 309
Joined: Sun Jan 08, 2006 10:09 pm
Location: Brasil - Sao Paulo
Contact:

Post by Rochinha »

Amiguinho

Se tu usa su aplicacion em modo solo usa mis exemplos:

Code: Select all

FUNCTION UnProtec( cDbf ) ; return( DbProtec( cDbf, 1 ) )
FUNCTION Protec( cDbf ) ; return( DbProtec( cDbf, 0 ) )
FUNCTION DbProtec( cDbf, nAction )
    local nHandle   := 0
    local cBuffer   := space( 32 )
    nHandle   := FOpen( cDbf, FO_READWRITE + FO_SHARED )
    DEFAULT nAction := 1
    if nHandle != -1
        if FRead( nHandle, @cBuffer, 32 ) == 32
            if nAction == 0     // 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
    return( FError() )
FUNCTION lProtec( cDbf )
    local nHandle   := 0
    local cBuffer   := space( 32 )
    local lRet      := .f.
    if ( nHandle := FOpen( cDbf, FO_READWRITE + FO_SHARED ) ) != -1
       if FRead( nHandle, @cBuffer, 32 ) == 32
           lRet := if( SubStr( cBuffer, 1, 1 ) == Chr( 26 ), .t., .f. )
       endif
       FClose( nHandle )
    else
        MsgInfo( "No puedo abrir la DBF: " + cDbf )
    endif
    return( lRet )
Exemplo:

UnProtect( "arquivo" )
USE arquivo
...
USE // or CLOSE
Protect( "arquivo" )

Mas si tus usas en rede tente la lib HBSIX.LIB con funciones de encryptacion de datos _.
Marco Augusto
Posts: 122
Joined: Wed Oct 12, 2005 1:03 pm
Location: Cuernacava, Morelos Mexico

Post by Marco Augusto »

mil gracias Amiguinho
Marco Augusto Rodriguez Manzo
fwh 2020 Xharbour 1.2.3
MySQL 5.0.19 Fastreport

PERZO SOFT
Sistemas Personalizados
Post Reply