2016-03-21 8 views
0

Auf der Suche nach einer Lösung zum Schutz einer Access-Datenbank. Ich möchte, dass ein Benutzer über ein vb.net-Programm lesen und schreiben kann, aber wenn ein Benutzer zum Speicherort der Datenbank in einem Netzwerkordner wechselt, kann er dort nicht mit ihm interagieren.Access-Datenbank schützen

Ich weiß, dass ich die Datenbank mit einem Kennwort schützen und das Kennwort in die Verbindungszeichenfolge aufnehmen kann, aber mit genügend Aufwand könnte der Benutzer das Kennwort in den Programmdateien finden, sobald es auf seinem Computer installiert ist?

Vielen Dank im Voraus.

+1

sehr wenig, was Sie tun können - Sie könnten eine ODBC-DSN einrichten und das PW dort eingeben, aber das verschiebt das Problem woanders hin. Es ist Zugriff - es ist eine dateibasierte Datenbank, und es gibt nicht viel, was Sie tun können, um es zu schützen. –

+0

Der Benutzer ist technisch versiert genug, um Ihr Programm zu dekompilieren? Wenn das der Fall ist, dann könnten Sie die Quelle höchstens verschleiern und eine Ver-/Entschlüsselung des Passworts einbauen, um die Nachverfolgung zu erschweren. Das ist, was ich tue ... sicher, dass jemand mit den Fähigkeiten meinen Code verstehen kann, aber die wichtigen Teile sind Kauderwelsch und es ist sehr schwer zu sagen, was vor sich geht. –

+0

Welche Version von Access? – Plutonix

Antwort

0

Versuchen Sie dies, es funktioniert vielleicht nicht, aber es ist einen Versuch wert, bevor Sie etwas Neues einrichten, dachte ich, da Sie erwähnt haben, dass die Datei in einem Netzwerk ist Warum nicht versuchen, die Datei jedes Mal zu verschlüsseln, wenn das Programm schließt? Wenn ein anderer Benutzer sie im Netzwerk auf einem anderen Computer finden sollte, sollte er nicht darauf zugreifen können.

Private Sub Form1_Closing(sender As Object, e As CancelEventArgs) Handles Me.Closing 
    Dim FileLocation As String = "C:\Users\" & Environment.UserName & "\Documents\Database1.accdb" 
    IO.File.Encrypt(FileLocation) 
End Sub 

Wenn Sie die Datei entschlüsseln möchten, ersetzen Sie einfach encrypt mit entschlüsseln. Fügen Sie auch ein Passwort aus dem Zugriff wie oben erwähnt hinzu. Dies ist alles, was Sie tun können, glaube ich, lassen Sie uns wissen, wie Sie weiterkommen.

1

Wie bereits von Marc B erwähnt, können Sie einige Drehungen hinzufügen und das ist es. Es wird nur Unebenheiten sein, nicht echte Sicherheit.

Die einfache und effektive Lösung besteht darin, Ihre Daten mit echter Sicherheit auf eine serverbasierte Datenbank-Engine zu verschieben. Wie Sie VB.NET verwenden, wäre die freie Wahl SQL Server 2014 Express.

+0

Ja. SQL Server Express wird mit Ihrer Kopie von Visual Studio geliefert. –