backend beveiliging

Status
Niet open voor verdere reacties.

RSpan

Gebruiker
Lid geworden
10 jun 2009
Berichten
166
Hallo forumleden

Ik heb een vraag over beveiliging.
mijn dbase is gesplitst in een front- en backend, is het mogelijk de backend te beveiligen opdat niemand daar in kan kijken of anderszins rommelen?

Groet
René
 
Dat kan op verschillende manieren allen met hun eigen voor en nadelen.
Het simpelste is de AutoExec macro gebruiken die gelijk de database afsluit en in de startup parameters ervoor zorgen dat de shift-toets ingedrukt houden tijdens opstarten geen nut meer heeft.

Als de tabellen in die database zijn gekoppeld aan een database die de cracker zelf maakt dan sta je weer met een mond vol tanden. Dat kan dus beter.

Je kan de database een password geven. In de frontend moet je tijden het koppelen dat password gebruiken dus als je dat automatisch doet dan staat je password leesbaar in de code. Die code moet je dus ook onzichtbaar maken. Ook hier moet je zorgen dat de gebruiker niet op kan starten met de shift toets ingedrukt. Of in ieder geval dat dat geen zin heeft.

Nog beter is de built-in Access userlever security (ULS) Je maakt dan een nieuwe werkgroep aan en geeft de gebruikergroep rechten en wijst de gebruiker toe aan een groep.

Voor nog geen 100 euri zijn programma's te koop die ook dat weer kraken.

Misschien moet je eens kijken naar SQL Server?

HTH:D
 
Dat kan op verschillende manieren allen met hun eigen voor en nadelen.
Het simpelste is de AutoExec macro gebruiken die gelijk de database afsluit en in de startup parameters ervoor zorgen dat de shift-toets ingedrukt houden tijdens opstarten geen nut meer heeft.

Als de tabellen in die database zijn gekoppeld aan een database die de cracker zelf maakt dan sta je weer met een mond vol tanden. Dat kan dus beter.

Je kan de database een password geven. In de frontend moet je tijden het koppelen dat password gebruiken dus als je dat automatisch doet dan staat je password leesbaar in de code. Die code moet je dus ook onzichtbaar maken. Ook hier moet je zorgen dat de gebruiker niet op kan starten met de shift toets ingedrukt. Of in ieder geval dat dat geen zin heeft.

Nog beter is de built-in Access userlever security (ULS) Je maakt dan een nieuwe werkgroep aan en geeft de gebruikergroep rechten en wijst de gebruiker toe aan een groep.

Voor nog geen 100 euri zijn programma's te koop die ook dat weer kraken.

Misschien moet je eens kijken naar SQL Server?

HTH:D

Hoi Guus

De eerste opties die je opnoemt daar heb ik in voorzien.
De shift toets is uitgeschakeld en met een wachtwoord beveiligd.
De dbase is ook met een wachtwoord beveiligd.
Maar dit alles heeft natuurlijk betrekking als je start met de frontend van het programma, Echter de dbase is gesplitst dus de backend (waar de tabellen zitten) is gewoon met b.v. access te openen, lezen en de gegevens te bewerken.
En dat is mijn vraag eigenlijk kan dat gedeelte eventueel beveiligd worden?:confused:

Groet:thumb:
René
 
Laatst bewerkt:
je moet je backend ook met een password beveiligen en niet alleen de frontend.
tijdens het koppelen wordt dan ook om dat password gevraagd. dat was de tweede optie.
 
je moet je backend ook met een password beveiligen en niet alleen de frontend.
tijdens het koppelen wordt dan ook om dat password gevraagd. dat was de tweede optie.

Hoi Guus

Dat gaat bij mij niet goed.
ik heb de backend met een password beveiligd maar bij het starten van de frontend krijg ik nu de melding "geen geldig wachtwoord" er wordt dus niet naar het wachtwoord gevraagd.
Kun je me verder helpen vergeet ik iets of doe ik iets fout?:confused:

groet
René
 
Je krijgt die foutmelding omdat het huidige password: geen, niet goed is voor de gekoppelde tabellen.
Je moet de tabellen opnieuw koppelen. Daarbij wordt wel een password gevraagd. Als je dat gedaan hebt dan is dat password bij de link opgeslagen.

Je kan het ook automatisch doen:
Code:
Public Function ConnectFromSameDir() As String
    Dim i                   As Long
    Dim ii                  As Long
    Dim dbs                 As Database
    Dim curdir              As String
    Dim myTable             As TableDef
    Dim strDescription      As String
    Dim strLinkedDbName     As String
    Dim strLinkedFullDbName As String

    On Error GoTo CFSD_Error
    
    'Find directory of database that executes this function (current directory)
    Set dbs = CurrentDb
    curdir = Mid(CurrentDb.Name, 1, Len(CurrentDb.Name) - Len(Dir(CurrentDb.Name)))
        
    'check if tables are connected
    For i = 0 To dbs.TableDefs.Count - 1
        Set myTable = dbs.TableDefs(i)
        If myTable.Connect <> "" Then
            
            'table is connected, find name connected Database by stripping directories from full path
             strLinkedFullDbName = Mid(myTable.Connect, InStr(myTable.Connect, ";Database=") + 10)
            ii = 0
            While InStr(ii + 1, strLinkedFullDbName, "\") > 0
                ii = InStr(ii + 1, strLinkedFullDbName, "\")
            Wend
            strLinkedDbName = Mid(strLinkedFullDbName, ii + 1)
            
            If Dir(curdir & strLinkedDbName) <> strLinkedDbName Then
                'database from which table is connected not in current directory
                
                MsgBox "Database " & strLinkedDbName & " waaruit " & myTable.Name & " komt staat niet op de huidige directory, als de te linken database van naam veranderd is link dan met de hand opnieuw anders wordt wellicht de verkeerde link gebruikt"
            Else
                ' is table connected to database in current directory
                If strLinkedFullDbName <> curdir & strLinkedDbName Then
            
                    ' connected to database in another directory or another replica in same directory so reconnect table
                    strDescription = "Database=" & curdir & strLinkedDbName
                    myTable.Connect = "MS Access;PWD=helpmij;" & strDescription
                    On Error Resume Next
                    myTable.RefreshLink
                
                    SetProperty myTable, "Description", strDescription
                
                End If
            End If
        End If
    Next

Exit_CFSD:
    Exit Function

CFSD_Error:
    MsgBox Err.Description, vbCritical
    Resume Exit_CFSD
    Resume

End Function
Deze fucntie gaat ervan uit dat de BE op dezelfde directory staat als de FE.

BTW de code die een foutmelding geeft moet je in bovenstaand voorbeeld gewoon weghalen.

HTH:D
 
Je krijgt die foutmelding omdat het huidige password: geen, niet goed is voor de gekoppelde tabellen.
Je moet de tabellen opnieuw koppelen. Daarbij wordt wel een password gevraagd. Als je dat gedaan hebt dan is dat password bij de link opgeslagen.

Je kan het ook automatisch doen:
Code:
Public Function ConnectFromSameDir() As String
    Dim i                   As Long
    Dim ii                  As Long
    Dim dbs                 As Database
    Dim curdir              As String
    Dim myTable             As TableDef
    Dim strDescription      As String
    Dim strLinkedDbName     As String
    Dim strLinkedFullDbName As String

    On Error GoTo CFSD_Error
    
    'Find directory of database that executes this function (current directory)
    Set dbs = CurrentDb
    curdir = Mid(CurrentDb.Name, 1, Len(CurrentDb.Name) - Len(Dir(CurrentDb.Name)))
        
    'check if tables are connected
    For i = 0 To dbs.TableDefs.Count - 1
        Set myTable = dbs.TableDefs(i)
        If myTable.Connect <> "" Then
            
            'table is connected, find name connected Database by stripping directories from full path
             strLinkedFullDbName = Mid(myTable.Connect, InStr(myTable.Connect, ";Database=") + 10)
            ii = 0
            While InStr(ii + 1, strLinkedFullDbName, "\") > 0
                ii = InStr(ii + 1, strLinkedFullDbName, "\")
            Wend
            strLinkedDbName = Mid(strLinkedFullDbName, ii + 1)
            
            If Dir(curdir & strLinkedDbName) <> strLinkedDbName Then
                'database from which table is connected not in current directory
                
                MsgBox "Database " & strLinkedDbName & " waaruit " & myTable.Name & " komt staat niet op de huidige directory, als de te linken database van naam veranderd is link dan met de hand opnieuw anders wordt wellicht de verkeerde link gebruikt"
            Else
                ' is table connected to database in current directory
                If strLinkedFullDbName <> curdir & strLinkedDbName Then
            
                    ' connected to database in another directory or another replica in same directory so reconnect table
                    strDescription = "Database=" & curdir & strLinkedDbName
                    myTable.Connect = "MS Access;PWD=helpmij;" & strDescription
                    On Error Resume Next
                    myTable.RefreshLink
                
                    SetProperty myTable, "Description", strDescription
                
                End If
            End If
        End If
    Next

Exit_CFSD:
    Exit Function

CFSD_Error:
    MsgBox Err.Description, vbCritical
    Resume Exit_CFSD
    Resume

End Function
Deze fucntie gaat ervan uit dat de BE op dezelfde directory staat als de FE.

BTW de code die een foutmelding geeft moet je in bovenstaand voorbeeld gewoon weghalen.

HTH:D


de tabellen opnieuw koppelen gaat niet, hij vraagt niet om het wachtwoord maar geeft dezlfde foutmelding.:(

??? enig idee?

mvg
René
 
je moet je tabellen ook eerst weggooien en daarna weer toevoegen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan