Farbschema: Riviera
Sie befinden sich hier: start » de » Dokumentation » Datenintegration und Datenzugriff » WKL Database Gateway » Anleitungen » So binden Sie eine Fachanwendung an

So binden Sie eine Fachanwendung an

Eine Access-Fachanwendung mit VBA liest Stammdaten, bucht Vorgänge über Prozeduren und soll dabei für die Datenbank erkennbar unter der Person arbeiten, die sie bedient. Sie soll nur ihre eigenen Objekte erreichen, nicht alles, was die Person sonst darf.

Lösungsübersicht

Der Dienst kennt die Person, nicht das Programm: Eine Anfrage aus der Fachanwendung und eine aus Excel derselben Person sehen für ihn gleich aus. Die Fachanwendung grenzen Sie deshalb über ihren eigenen Alias und eine Regel für diesen Alias ab; die Person geben Sie an SQL Server weiter, damit Prozeduren, Trigger und Sichten wissen, wer handelt.

MittelWirkung
Eigener Alias für die Fachanwendung (fachanwendung) auf dieselbe DatenbankRechte dieses Wegs getrennt von Berichten und anderen Anwendungen
Regel mit mehreren Einträgen je AliasLesen hier, Schreiben über Prozeduren dort (siehe Reichweite je Alias)
Persons: Impersonate und eigene Anmeldung je Person, oder SESSION_CONTEXT(N'wkl.person')Die Datenbank kennt die handelnde Person
Geprüfte Anweisungen statt sqlEigene Abfragen der VBA-Klasse, Objekt für Objekt gegen die Regel geprüft

Umsetzung

  1. Alias anlegen (DataSources) mit einem Namen, der die Anwendung nennt, und auf Wunsch Persons: Impersonate; siehe So geben Sie Personen an SQL Server weiter.
  2. Regel für die Anwendung nur auf ihre Objekte:

    [ { "Id": "fachanwendung-auftrag", "Databases": [ "fachanwendung" ],
        "Resources": [ "views", "procedures" ], "Objects": [ "auftrag.*" ],
        "Verbs": [ "GET", "POST" ], "ReadOnly": false } ]

    Ordnen Sie sie den Personen oder ihrer Windows-Gruppe zu (PersonRules, WindowsAccounts).

  3. In Access verknüpfen über den ODBC-Treiber mit dem Alias fachanwendung; am Firmen-PC mit dem Windows-Konto, von außen mit einem persönlichen Schlüssel und Code.
  4. Eigene Abfragen der VBA-Klasse schalten Sie als geprüfte Anweisungen frei, nicht mit dem Recht sql; siehe So schalten Sie eigene Anweisungen frei.
  5. Prüfen: In SQL Server zeigt SUSER_SNAME() (mit Impersonate) bzw. SESSION_CONTEXT(N'wkl.person') die Person; AuditEntries nennt je Anfrage Person, Alias und Objekt. Ein Objekt außerhalb von auftrag.* beantwortet der Dienst über diesen Alias mit 404.

Ergebnis: Die Fachanwendung erreicht über ihren Alias nur ihre Objekte; die Datenbank weiß bei jeder Buchung, welche Person sie ausgelöst hat.

Hinweise

  • Keine eigene Kennung für die Anwendung. Ein Schlüssel gehört immer einer Person oder einem Dienst. Ein anderes Programm derselben Person mit demselben Alias erreicht dasselbe. Wo das nicht genügt, entscheidet die Datenbank: Schreiben nur über Prozeduren, die ihre Regeln selbst prüfen.
  • Dienstschlüssel sind für Programme ohne Person (Schnittstellen, nächtliche Abgleiche); sie wechseln nie die Identität.
  • Die VBA-Klasse und ihre Anmeldung beschreibt „WklGatewayClient – VBA-Klasse für den Datendienst“ (Dokumentation der Verwaltungsanwendung).

Verwandte Themen

de/wiki/data-conectivity/database-gateway/how-to/connect-a-business-application.txt · Zuletzt geändert: von Wolfgang van der Stille