Benutzer mit den meisten Antworten
Kann man den DAO-Zugriff über eine andere Anwendung (EXCEL) auf eine ACCESS-2010-DB verhindern?

Frage
-
Hallo Community,
Ich möchte eine Access2003-DB mit SQL-Server-Backend auf Access2010 migrieren.
Die Tabellen sind in Access eingebunden. Der SQL-Server prüft nur den Anmeldenamen, die Berechtigungen auf Formulare, etc. werden nur in der Anwendung geprüft.
Es soll verhindert werden, dass ein berechtigter user alle Daten in den Tabellen sehen kann.
In Access 2010 ist aber anscheinend der Zugriff von außen auf die eingebunden Tabellen, z.B. aus EXCEL über CreateObject, GetObject oder DAO möglich.
Dazu habe ich folgendes gefunden:
CreateObject kann man mit user.control verhindern
Den DAO-Zugriff über ein Datenbankpasswort zu verhindern, hat von EXCEL aus nicht funktioniert, nur von Access.
Mit GetObject kann man zumindest auf das gerade geöffnete Formular zugreifen.
Kann man verhindern, dass ein user dadurch auf die Tabellen zugreifen, Daten ändern, den Connection-String auslesen,...kann??
ACCDE und Runtime haben bei meinen Versuchen leider nicht weitergeholfen.
Danke für jeden Hinweis.
Antworten
-
Am 14.08.2015 schrieb Marion04:
Es soll verhindert werden, dass ein berechtigter user alle Daten in den Tabellen sehen kann.
Dann kannst Du IMHO nur die Anwendung tableless erstellen und die
Daten über Stored Procedures in die Anwendung holen. Auf der AEK17 hat
Bernd Jungbluth einen Vortrag dazu gehalten, hier kannst Du die
Beispiel Daten und Scripte downloaden:
http://www.donkarl.com/Downloads/AEK/AEK17_LogikSQLServer.zip
Servus
Winfried
Gruppenrichtlinien
HowTos zum WSUS Package Publisher
WSUS Package Publisher
HowTos zum Local Update Publisher
NNTP-Bridge für MS-Foren- Als Antwort markiert Marion04 Donnerstag, 10. Oktober 2019 08:47
Alle Antworten
-
Am 14.08.2015 schrieb Marion04:
Es soll verhindert werden, dass ein berechtigter user alle Daten in den Tabellen sehen kann.
Dann kannst Du IMHO nur die Anwendung tableless erstellen und die
Daten über Stored Procedures in die Anwendung holen. Auf der AEK17 hat
Bernd Jungbluth einen Vortrag dazu gehalten, hier kannst Du die
Beispiel Daten und Scripte downloaden:
http://www.donkarl.com/Downloads/AEK/AEK17_LogikSQLServer.zip
Servus
Winfried
Gruppenrichtlinien
HowTos zum WSUS Package Publisher
WSUS Package Publisher
HowTos zum Local Update Publisher
NNTP-Bridge für MS-Foren- Als Antwort markiert Marion04 Donnerstag, 10. Oktober 2019 08:47
-
Vielen Dank für die schnelle Antwort!
Tableless wäre sicherlich das Beste, befürchte aber, dass das mit zuviel Aufwand verbunden ist, da noch viele Abfragen in Access liegen. :-(
Kann man das ganze wenigstens etwas sicherer machen? Könnte vielleicht ein LoGon-Trigger irgendwie weiterhelfen?
Besteht das Problem, dass der externe Zugriff über DAO/GetObject möglich ist, eigentlich erst seit Office 2007?
-
Am 16.08.2015 schrieb Marion04:
Tableless wäre sicherlich das Beste, befürchte aber, dass das mit zuviel Aufwand verbunden ist, da noch viele Abfragen in Access liegen. :-(
Natürlich ist das ein nicht unerheblicher Aufwand, aber ist Sicherheit
nicht immer mit Aufwand verbunden?Kann man das ganze wenigstens etwas sicherer machen? Könnte vielleicht ein LoGon-Trigger irgendwie weiterhelfen?
Das weiß ich nicht.
Du könntest allerdings das Pferd von hinten aufzäumen. Alle Abfragen
nur noch in SPs auf dem SQL ablegen, den Benutzern brauchst Du nur das
Ausführen der SPs ermöglichen/zulassen. Dadurch brauchen sie keinen
direkten Zugriff auf die Tabellen. Sie müssen auch nicht Datareader
oder Datawriter sein. Damit können sie IMHO nicht auf die Tabellen
zugreifen.Eine weitere Möglichkeit wäre, die Kommunikation zwischen Client und
Server/Instanz zwangsmässig zu verschlüsseln. Das mußt Du dann im
Connetionstring in Access angeben. Wenn es der Anwender nicht weiß,
kann er IMHO nicht mehr über Excel zugreifen, solange er das mit der
Verschlüsselung nicht weiß.Besteht das Problem, dass der externe Zugriff über DAO/GetObject möglich ist, eigentlich erst seit Office 2007?
Weiß ich nicht, kann ich mir aber nicht vorstellen.
Servus
Winfried
Gruppenrichtlinien
HowTos zum WSUS Package Publisher
WSUS Package Publisher
HowTos zum Local Update Publisher
NNTP-Bridge für MS-Foren -
Hallo!
Man konnte schon immer auf die Access-Elemente von außen zugreifen. Es gab zwar eine Möglichkeit den Zugriff über eine mdw für "Unwissende" einzuschränken, der war aber einfach zu umgehen.
Verwendest du einen Connectionstring mit SQL-User und Kennwort?
=> diese Daten nicht in der verknüpften Tabelle abspeichern, sondern stelle die Zugangskennung erst beim Laden der Access-Anwendung ein, indem du beim Start der Anwendung z. B. eine temporäre PT-Abfrage mit dem identischen Connectionstring aber inkl. Benutzerdaten öffnest. Dann darf der Connectionstring gerne ausgelesen werden, der hilft dann allerdings nicht, um sich damit die Daten zu holen, da das Kennwort fehlt.Falls du den Zugriff über Windows-Authentifizierung regelst, müsstest du im Server dafür sorgen, dass der User nur die Daten sieht, die er sehen kann. => Tabellen vor Zugriff sperren und die erlaubten Daten z. B. über Sichten bereitstellen.
mfg
JosefCode-Bibliothek für Access-Entwickler
AccUnit - Testen von Access-Anwendungen
Virtueller Access-Stammtisch