Zugriff auf bestimmte Datensätze verhindern (SQL Server 2008 mit Access 2010 als Frontend)
Hallo,
ich hatte schonmal anders gefragt, inzwischen konnte ich die Datenbank aber auf einen SQL-Server portieren.
Ich habe hier eine Datenbank auf einem SQL Server 2008.
Als Frontend kommte Access 2010 bzw. Access 2010 RunTime zum Einsatz.
Nach einer Neuaufteilung sollen nicht mehr alle Benutzer alle Datensätze sehen dürfen.
Ganz Konkret, alle Kunden.
Mein 1. Gedanke: Zugriff auf Tabelle entziehen, Abfrage mit Filter erstellen und am Client einbinden.
Das funktioniert auch prima, aber: ich würde gerne einen Client für alle Benutzer verwenden. Das erleichter die Pflege der DB doch erheblich.
Zugriffsrechte auf Datensatzebene habe ich nicht gefunden.
Kann man in Abfragen dynamisch den Benutzernamen verwenden?
Alternativ könnte ich natürlich mit VBA beim Start die Verknüpfung immer richtig hinbiegen, erscheint mir aber auch nicht "richtig".
Wie macht man sowas am saubersten?
Danke
Stefan
ich hatte schonmal anders gefragt, inzwischen konnte ich die Datenbank aber auf einen SQL-Server portieren.
Ich habe hier eine Datenbank auf einem SQL Server 2008.
Als Frontend kommte Access 2010 bzw. Access 2010 RunTime zum Einsatz.
Nach einer Neuaufteilung sollen nicht mehr alle Benutzer alle Datensätze sehen dürfen.
Ganz Konkret, alle Kunden.
Mein 1. Gedanke: Zugriff auf Tabelle entziehen, Abfrage mit Filter erstellen und am Client einbinden.
Das funktioniert auch prima, aber: ich würde gerne einen Client für alle Benutzer verwenden. Das erleichter die Pflege der DB doch erheblich.
Zugriffsrechte auf Datensatzebene habe ich nicht gefunden.
Kann man in Abfragen dynamisch den Benutzernamen verwenden?
Alternativ könnte ich natürlich mit VBA beim Start die Verknüpfung immer richtig hinbiegen, erscheint mir aber auch nicht "richtig".
Wie macht man sowas am saubersten?
Danke
Stefan
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 159914
Url: https://administrator.de/forum/zugriff-auf-bestimmte-datensaetze-verhindern-sql-server-2008-mit-access-2010-als-frontend-159914.html
Ausgedruckt am: 04.04.2025 um 05:04 Uhr
4 Kommentare
Neuester Kommentar
Moin moin
Ich rate mal:
In der Tabelle Kunden befindet sich auch ein Feld in dem eine Art Benutzer ID steht? Quasi der "Eigentümer" des Datensatzes?
Und du möchtest jetzt das, egal welcher User das Frontend startet, immer nur seine Datensätze sieht?
Wie gehtst du mit Access auf die SQL DB? via ODBC?
Was hindert dich daran z.B. die eine VBA Proc zu schreiben, die den Windows Anmeldenamen ermittet
und damit ein SQL statement zusammenstellt das nur die Benutzereigenen Daten aus Kunden anzeigt?
Gruß L.
Ich rate mal:
In der Tabelle Kunden befindet sich auch ein Feld in dem eine Art Benutzer ID steht? Quasi der "Eigentümer" des Datensatzes?
Und du möchtest jetzt das, egal welcher User das Frontend startet, immer nur seine Datensätze sieht?
Abfrage mit Filter erstellen und am Client einbinden
Diese Abfrage liegt auf dem Server oder ist das eine Access Abfrage?Wie gehtst du mit Access auf die SQL DB? via ODBC?
aber: ich würde gerne einen Client für alle Benutzer verwenden.
Davon rate ich lieber ab. Da habe ich keine guten Erfahrungen mit Access gemacht.Was hindert dich daran z.B. die eine VBA Proc zu schreiben, die den Windows Anmeldenamen ermittet
und damit ein SQL statement zusammenstellt das nur die Benutzereigenen Daten aus Kunden anzeigt?
Gruß L.
Moin Moin
Views kannst du keine Parameter übergeben.
Du könntest natürlich auf dem SQL Server auch eine Gespeicherte Procedur bauen, die als Parameter den Benutzernamen verarbeiten kann.
Diese soltest du dann von Access aus als SQL PassThrough aufrufen können.
Gruß L.
Zitat von @StefanKittel:
Nichts, ich wollte nur sicherstellen, dass er dafür nicht bereits eine Funktion am SQL-Server gibt.
Z.B. in einer Sicht, dass man den Benutzernamen verwenden kann.
Wobei mein 1. Gedanke war die Abfrage unter Access zu verwenden. Aber andersherum sollte es auch gehen.Nichts, ich wollte nur sicherstellen, dass er dafür nicht bereits eine Funktion am SQL-Server gibt.
Z.B. in einer Sicht, dass man den Benutzernamen verwenden kann.
Views kannst du keine Parameter übergeben.
Du könntest natürlich auf dem SQL Server auch eine Gespeicherte Procedur bauen, die als Parameter den Benutzernamen verarbeiten kann.
Diese soltest du dann von Access aus als SQL PassThrough aufrufen können.
Gruß L.