Povezava poslovne aplikacije
Poslovna aplikacija v Accessu z VBA bere matične podatke in knjiži prek procedur. Podatkovna zbirka naj vsako dejanje pripiše osebi, ki dela z aplikacijo. Aplikacija naj doseže le svoje objekte, ne vsega, do česar ima oseba sicer dostop.
Pregled rešitve
Prehod prepozna osebo, ne programa: zahteva iz aplikacije in zahteva iz Excela iste osebe sta zanjo enaki. Aplikacijo zato ločite z lastnim aliasom in pravilom za ta alias. Identiteto osebe posredujete strežniku SQL Server, da procedure, sprožilci in pogledi vedo, kdo izvaja dejanje.
| Ukrep | Učinek |
|---|---|
Lasten alias za aplikacijo (fachanwendung) na isti podatkovni zbirki | Pravice aplikacije so ločene od poročil in drugih aplikacij |
| Pravilo z več vnosi za vsak alias | Tu branje, tam pisanje prek procedur (glejte Obseg za posamezni alias) |
Persons: Impersonate in lastna prijava za vsako osebo ali SESSION_CONTEXT(N'wkl.person') | Podatkovna zbirka pozna osebo, ki izvaja dejanje |
Preverjeni stavki namesto sql | Lastne poizvedbe razreda VBA, preverjene po objektih glede na pravilo |
Izvedba
- Ustvarite alias (
DataSources), poimenovan po aplikaciji, in po željiPersons: Impersonate; glejte Posredovanje identitete oseb strežniku SQL Server. Ustvarite pravilo za aplikacijo, ki zajema le njene objekte:
[ { "Id": "fachanwendung-auftrag", "Databases": [ "fachanwendung" ], "Resources": [ "views", "procedures" ], "Objects": [ "auftrag.*" ], "Verbs": [ "GET", "POST" ], "ReadOnly": false } ]Dodelite ga osebam ali njihovi skupini Windows (
PersonRules,WindowsAccounts).- Povežite Access prek gonilnika ODBC z aliasom
fachanwendung: na službenem računalniku z računom Windows, od zunaj z osebnim ključem in kodo 2FA. - Lastne poizvedbe razreda VBA omogočite kot preverjene stavke, ne s pravico
sql; glejte Omogočanje lastnih stavkov SQL. - Preverjanje: V strežniku SQL Server
SUSER_SNAME()(zImpersonate) aliSESSION_CONTEXT(N'wkl.person')prikaže osebo;AuditEntriesza vsako zahtevo navaja osebo, alias in objekt. Na objekt zunajauftrag.*prek tega aliasa prehod odgovori z404.
Rezultat: Aplikacija prek svojega aliasa doseže le svoje objekte; podatkovna zbirka za vsako knjižbo ve, katera oseba jo je sprožila.
Napotki
- Aplikacija nima lastne identitete. Ključ vedno pripada osebi ali prehodu. Drug program iste osebe, ki uporablja isti alias, doseže iste objekte. Kjer to ne zadošča, mora odločiti podatkovna zbirka: pisanje dovolite le prek procedur, ki preverjajo lastna pravila.
- Ključi storitve so namenjeni programom brez osebe (vmesniki, nočno usklajevanje); z njimi se identiteta nikoli ne zamenja.
- Razred VBA in njegovo prijavo opisuje “DbGwClient – razred VBA za podatkovni prehod” (v dokumentaciji aplikacije za upravljanje).