MS Access User Level Security für Form zu lesen, aber Tabelle werden Versteckt

StackOverflow https://stackoverflow.com/questions/930654

  •  06-09-2019
  •  | 
  •  

Frage

Kann Sicherheit auf Benutzerebene aktiviert jemand ein Formular zugreifen, aber nicht auf eine Tabelle zugreifen? Ich habe eine Form, die einen „SELECT“ -Befehl zu einer Tabelle verbunden ist, verwendet wird. Dabei spielt es keine „Update“ oder „Löschen“. Ich möchte mich für den Benutzer meine Form zugreifen, aber ich will sie nicht die Details in der zugrunde liegenden Tabelle sehen können. Ich habe alle möglichen Kombinationen in der Benutzerdatensicherheits-Assistent versucht, aber aus irgendeinem Grund, meine Form kommt leer, es sei denn, ich vollen Zugriff auf den Benutzer geben, etwas zu tun. Irgendwelche Ideen? By the way, ich bin auf Access 2003.

Keine korrekte Lösung

Andere Tipps

Sie könnten eine MDE machen und geben es an die Benutzer. Wenn Sie dies tun, werden die Benutzer nicht in der Lage sein, etwas anderes als die Benutzeroberfläche sehen Sie bereitgestellt haben.

Wenn Ihre Tabellen in der gleichen Access-Datenbank, wie die Formulare und Abfragen sind, müssen Sie zunächst in ein Frontend und Backend „um die Datenbank geteilt“. Siehe auch:

http://databases.about.com/od/tutorials/ss /splitaccessdb.htm

für Informationen darüber, wie dies zu tun. Das Frontend enthält alles, aber die Tische. Das Backend enthält die Tabellen. Das Frontend an den Back-End-Tabellen verknüpft ist „verknüpfte Tabelle“ Objekte im Frontend verwendet wird.

Sobald die Datenbank aufgespalten wird, öffnen Sie das Frontend in Access und eine MDE erstellen, indem Sie Extras / Datenbank-Dienstprogramme / MDE-Datei in der Menüleiste. Die MDE ist, was Sie für die Nutzer. Sie öffnen es die gleiche Art, wie sie jede andere Datenbank, mit der Ausnahme, dass sie keine der Objekte entwerfen können.

Stellen Sie sicher, dass Sie einen Makro AutoExec im Frontend definiert haben, so dass, wenn die MDE vom Benutzer geöffnet wird, es einen Einstiegspunkt hat. Der Benutzer kann keine der Objekte in der MDE sehen, wenn Sie also die erste Form keine AUTOEXEC Makro haben zu öffnen, wird nichts passieren, wenn sie versuchen, die MDE zu öffnen.

Wenn Sie die Möglichkeit benötigen, indem der Benutzer die verknüpften Tabellen in der MDE zu verwalten, um die Back-End-Datenbank mit einer Datei / Öffnen-Dialog finden Sie im folgenden Artikel verbinden:

http://www.mvps.org/access/tables/tbl0009.htm

Natürlich nichts davon ausschließt Benutzer von der Back-End-Datenbank zu öffnen. Wenn Sie eine höhere Sicherheit benötigen, können Sie die Back-End-Datenbank auf SQL Server Express upsize. Mehr Infos hier:

http://office.microsoft.com/en-us/access /HA102755371033.aspx

Was Sie suchen ist eine RWOP Abfrage. Das bedeutet, dass „mit dem Besitzer Genehmigung ausgeführt werden.“

es funktioniert, Sie haben unter der Annahme, bereits die Sicherheitsassistenten auf Ihrem Front-End laufen und Back-End-Datenbanken und müssen entfernt Berechtigungen für die Benutzer auch die Tabellen zu lesen, erstellen Sie dann eine gespeicherte Abfrage als Datenherkunft von deine Form. In den Eigenschaften der Abfrage wird standardmäßig PERMISSIONS als RUN „des Benutzers.“ Ändern Sie diesen auf „Besitzer“ und speichern Sie die Abfrage. Die Abfrage wird mit dem, was die Berechtigungen für die Basistabelle laufen die Besitzer der Abfrage. Wenn Sie sich als Administrator mit vollen Berechtigungen ausgeführt werden, mögen Sie die Berechtigungen der gespeicherten Abfrage auf schreibgeschützt (oder die Abfrage unter einer Benutzeranmeldung erstellen, die den Zugriff nur gelesen zu den Tabellen haben - es ist viel einfacher die ersteren zu tun).

Einige Einschränkungen:

  1. Sicherheit auf Benutzerebene ist schwierig. Wenn Sie auch nur einen Schritt in die ULS Sicherheit Whitepaper skizziert verpassen, wird Ihre App nicht gesichert werden. Die Art und Weise, dies zu testen, ist Zugang mit einer Standard-Arbeitsgruppe-Datei zu öffnen und dann sehen, wenn Sie auf die Objekte zugreifen können in Ihrer Datenbank als Standard-Admin-Benutzer angemeldet. Wenn Sie können, dann sind Sie einen Fehler irgendwo entlang der Strecke.

  2. Sicherheit auf Benutzerebene ist knackbar von jedem, der will. Dies bedeutet nicht, es ist nicht sinnvoll, es bedeutet nur, dass es nicht kugelsicher. Ich mach dir keine Sorgen, dass so viel, wie ich die Sicherheit, so viel ein Volk Problem als ein technisches Problem betrachten - Sie Mitarbeiter über ausreichende Berechtigungen geben, ihre Arbeit zu tun, und Sie müssen sie darauf vertrauen, dass sie nicht die Privilegien missbrauchen Sie haben ihnen gegeben.

  3. Wenn Sie Access 2007 laufen und mit dem ACCDB-Format, RWOP Anfragen stehen Ihnen nicht zur Verfügung, da Jet Sicherheit auf Benutzerebene für das ACCDB-Format nicht unterstützt. Wenn Sie mit MDB-Format, jedoch wird es in A2007 gut funktionieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top