PDA

Vollständige Version anzeigen : Datenbanksicherheit


Andi M
14.08.2001, 13:56
Hallo,

ich habe eine Access-DB, die von über 100 Benutzern genutzt wird. Diese haben die Datei lokal auf ihrem PC, greifen jedoch auf eine Oracle-DB auf dem Server zu. Das Problem ist, dass einige den Trick mit der Shift-Taste kennen und so das Startformular umgehen können und sich eigene Abfragen erstellen können, was nicht erwünscht ist. Hat jemand ne idee wie ich verhindern kann, dass jemand dort ran kommt?

A.S.
14.08.2001, 13:59
Hallo Andi,

schau einmal bei Karl Donaubauer in die FAQ ( http://www.donkarl.com ) unter 1.18 Anwenden des Sicherheitssystems.

Gruß

Arno

kalle
14.08.2001, 13:59
Hallo!

Hierzu zitiere ich einfach mal von donkarl.com

1.8 VERHINDERN DER SHIFT-TASTE BEIM START


P r o b l e m
Der Anwender umgeht deine Starteinstellungen indem er <Shift> beim Öffnen der mdb gedrückt hält.

L ö s u n g
In A97 gibt es zum Verhindern der Shift-Taste die Eigenschaft AllowBypassKey. s. Online-Hilfe.
Du kannst diese Eigenschaft z.B. mit folgender Funktion (von Jörg Ackermann) einstellen :

'************* CODE START *************
Function StartOptionenEin(flag As Boolean) As Integer

Dim db As DATABASE

On Error GoTo Err_StartOptionenEin

Set db = CurrentDb
db.Properties!AllowBypassKey = flag

Exit_StartOptionenEin:
Exit Function

Err_StartOptionenEin:
If Err = 3270 Then
db.Properties.Append db.CreateProperty("AllowBypassKey", dbBoolean, flag)
Resume Next
Else
MsgBox "Fehler: " & Error$ & "(" & Err & ")"
Resume Exit_StartOptionenEin
End If

End Function
'************* CODE ENDE *************

Aufruf zum Verhindern der Shift-Taste: StartOptionenEin (False)
Aufruf zum Ermöglichen der Shift-Taste: StartOptionenEin (True)

Wo die Funktion in der DB aufgerufen wird, ist ziemlich wurscht. Sobald sie ein einziges Mal aufgerufen wurde, wird die Eigenschaft "AllowBypassKey" dauerhaft für diese DB gesetzt - bis zum nächsten ausdrücklichen Umsetzen. Du kannst also ein beliebiges Ereignis dafür verwenden oder sogar das Testfenster.

Achte darauf, dass du dir in deiner mdb eine versteckte Möglichkeit schaffst, auf True zu setzen, damit du selber wieder an deine Entwürfe kommst. (z.B. Umsetzen bei Klick auf ein unauffälliges Bezeichnungsfeld o.ä.)

AllowBypassKey kann ohne Aktivierung des Access-Sicherheitssystems mit geringen Programmierkenntnissen von außen umgesetzt werden. Wenn das Sicherheitssystem aktiviert ist, lässt sich jedoch einstellen, dass nur der die Eigenschaft umsetzen kann, der die entsprechenden Rechte besitzt. Dazu kann man bei der CreateProperty-Methode den Parameter DDL auf True setzen. (s. Online-Hilfe zu CreateProperty) Im konkreten Beispiel:

db.Properties.Append db.CreateProperty("AllowBypassKey", dbBoolean, flag, True)

Viel Erfolg :-)

Gruß, Kalle