Newsgroup: it.comp.appl.access
Titolo: [Sicurezza] Come proteggere mdb

Buongiorno Ng,
sto cercando di capire come funziona la protezione del database di
access, come implementarla.
C'è qualche lettura che potete consigliarmi (sia ITA che ENG
possibilmente)?
Grazie 1k
Samantha

 ha scritto nel messaggio 
news:1173800647....@n33g2000cwc.googlegroups.com...
Buongiorno Ng,


Grazie 1k
Samantha
Ciao
io uso la funzione per la protezione con il numero seriale dell'hard disk e 
ti posso dire che funziona benissimo ti posto il codice:
Option Compare Database
Option Explicit
' Questo modulo contiene la funzione da usare per ricavare il Serial-Number 
di una unita'.
' Alla funzione GetSerialNumber(strDrive As String) Si può passare come 
parametro una stringa
' contenente l'unita' da controllare, esempio "D:\".
' In questo caso io controllo direttamente C:\
Private Declare Function GetVolumeInformation Lib "kernel32.dll" Alias _
    "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal _
    lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Integer, _
    lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, _
    lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal 
_
    nFileSystemNameSize As Long) As Long
Function GetSerialNumber() As Long
    Dim SerialNum As Long
    Dim Res As Long
    Dim Temp1 As String
    Dim Temp2 As String
    Temp1 = String$(255, Chr$(0))
    Temp2 = String$(255, Chr$(0))
    'Se vi sono errori Res=0, altrimenti, se tutto e' andato ok, Res=1
    Res = GetVolumeInformation("C:\", Temp1, Len(Temp1), SerialNum, 0, 0, 
Temp2, Len(Temp2))
    'Res = GetVolumeInformation(strDrive, Temp1, Len(Temp1), SerialNum, 0, 
0, Temp2, Len(Temp2))
    GetSerialNumber = SerialNum
End Function
Devi avere nel Db una tabella chiamata chiave con un campo numero chiamato 
anch'esso chiave e sull'apertura della msk principale inserisci questo:
Private Sub Form_Open(Cancel As Integer)
    Dim CodSbloc As String
    Dim Dbs As Database
    Dim Rst As Recordset
    On Error Resume Next
    Set Dbs = CurrentDb
    Set Rst = Dbs.OpenRecordset("select * from Chiave")
    Rst.MoveFirst
    If Rst!chiave <> GetSerialNumber Then
        CodSbloc = InputBox("Si è tentato di duplicare l'applicativo!" & 
(Chr(13)) & "Inserire il codice di sblocco! " & (Chr(13)) & "Il programma 
sarà chiuso comunque")
        If CodSbloc = "29051974" Then 'questo valore è sostituibile con 
quello che volete
            Rst.Edit
            Rst!chiave = GetSerialNumber
            Rst.Update
        End If
        Rst.Close
        Dbs.Close
        Set Rst = Nothing
        Set Dbs = Nothing
        DoCmd.Quit 'questo comando chiude in ogni caso il menu del programma 
se è stato duplicato
    End If
    Rst.Close
    Dbs.Close
    Set Rst = Nothing
    Set Dbs = Nothing
End Sub
Il gioco e' fatto.
Buon lavoro e ciao

Samantha
-- 
Roberto
-----------------------------------------------
il Sito Comune di it.comp.appl.access
http://www.sitocomune.com
-----------------------------------------------

 ha scritto nel messaggionews:1173800647....@n33g2000cwc.googlegroups.com...

Scusa ma il dato nella Tabella secondo te quanto ci si impiega a
Fregarlo visto che anche rendendo MDE rimane leggibile....
Vabbè puoi usare il metodo MD5 per criptarlo... ma tu non lo fai,
quindi in 3 secondi il tuo sistema si Buca.
Sembra facile proteggere i programmi ma non lo è.... se misuriamo le
capacità medie di smanettare potrebbe andare, ma uno un pò
smaliziato.....
;-)
@Alex

 ha scritto nel messaggio 
news:1173823460.7...@l75g2000hse.googlegroups.com...


@Alex
ciao Alessandro...
    io avevo provato anche l'ocx nslock15 mi pareva funzionasse bene
cosa ne pensi ?
ciao grazie

 @Alex
Ciao,
io questo db lo devo dividere, e installare in due macchine in LAN.
Per la divisione e il collegamento delle tabelle non è un problema.
Mi interessava la parte sicurezza, capire come gestire eventualmente
gli utenti  se è il caso di crearne.
Per questo chiedevo documenti dove approfondissero il tema della
sicurezza, per capire meglio di cosa stiamo parlando, evitare di fare
casini.
Grazie ancora,
Samantha

 ha scritto nel messaggionews:1173823460.7...@l75g2000hse.googlegroups.com...

Si ne hanno parlato bene... io non mi appoggio ad OCX, e ritengo che
la protezione del Codice creando MDE(+MDW di declassamento ADMIN) sia
più che sufficiente.
Non dimenticate che la MS, che realizza SW più importante dei nostri,
ha sempre distribuito SW "craccabile"(per quanto illegale) e questo ha
solo aumentato la popolarità....
Sinceramente non capisco questa volontà di rendere inviolabile un
prodotto... non ci sarà qualcuno che pensa di aver fatto un
applicativo UNICO... ricordiamoci che stiamo facendo applicativi che
quando va bene fanno amministrazione e contabilità..., quindi quando
si applicano le protezioni base al fine di evitare danni involontari o
il prelievo di Codice a mio avviso è OK, tutto il resto sono solo
"pippe"...
@Alex

 ha scritto nel messaggio 
news:45f6cc23$0$20811$5fc...@news.tiscali.it...

------------------
ciao stavo provando quanto sopra, ma se copio-incollo in un modulo
mi esce quasi tutto rosso... problemi di spazi e tabulazioni...
mi puoi rispedire il codice, anche in mail Pvt ??
grazie 

 ha scritto nel messaggio 
news:45f7bce0$0$20822$5fc...@news.tiscali.it...

Si lo avevamo provato insieme... Qualche anno fa' se non ricordo male.
Io poi non l'ho più usato.. (ma mi è sempre rimasto il test nell'hd)
Condivido la teoria di alessandro, anzi mi posiziono 2.3.4 gradini più in 
basso
penso che le piccole applicazioni che faccio non abbiano bisogno di 
protezione particolare...
ma penso che sia d'obbligo provare tutto !!
ciao ciao...

 ha scritto nel
oh ma sfoltire il quoting
superfluo no?
-- 
-- 
Massimiliano Amendola
www.accessgroup.it
Cisa - Conferenza Italiana Sviluppatori Access