Izhodišče, primeri uporabe in alternative
Na tej strani je opisano, kateri problem rešuje Database Gateway, za katere primere uporabe je bil zasnovan, katere druge možnosti so bile preučene in zakaj niso bile izbrane. Namenjena je vsem, ki o uvedbi odločajo ali jo morajo utemeljiti.
Povzetek
Poslovni podatki so shranjeni v podatkovnih zbirkah SQL Server. Uporabniki delajo z Accessom, Excelom in Power BI, poleg tega dostopajo do podatkov še lastni programi. Delovne postaje do podatkovne zbirke ne smejo dostopati neposredno, tudi ne od doma, na poti ali pri stranki. Potreben je zato dostop prek HTTP, ki prijavo in pravice preverja na enem mestu, programi Office pa ga lahko uporabljajo tako kot danes podatkovno zbirko: Access s povezanimi tabelami, ki jih urejate v podatkovnem listu in obrazcih, Excel in Power BI pa s poizvedbami, katerih filtri se izvedejo na strežniku.
Povezava s podatkovnimi storitvami (Data Services), ki je že vgrajena v Access, tega ne omogoča. Temelji na opisu povezave XML za Business Connectivity Services, ne na OData, tako povezana tabela pa je samo za branje (Microsoft: Link to a Data Service). Za urejanje v podatkovnem listu Access potrebuje gonilnik ODBC, ki parametre Accessa veže kot vrednosti in filtre posreduje strežniku. Database Gateway zato sestavljata podatkovni prehod, ki ponuja OData v4 in lastni vmesnik HTTP, ter lasten gonilnik ODBC, s katerim Access prek te prehoda tudi zapisuje podatke.
Izhodišče
Zakaj ne neposreden dostop do podatkovne zbirke? Če se Access ali Excel neposredno povezujeta s SQL Serverjem, mora vsaka delovna postaja v omrežju doseči strežnik podatkovne zbirke (privzeto vrata 1433), vsaka oseba ali aplikacija pa mora imeti svojo prijavo v SQL Server. Iz tega izhajajo tri težave:
| Težava | Posledica |
|---|---|
| Zunaj omrežja podjetja je strežnik podatkovne zbirke dosegljiv samo prek VPN ali odprtih vrat | Odprta vrata podatkovne zbirke v internetu so znana tarča napadov. VPN je treba nastaviti in vzdrževati na vsaki napravi, vsak uporabnik pa ga mora znati uporabljati |
| Podatki za prijavo so shranjeni v aplikacijah | Access povezavo povezane tabele shrani v datoteko podatkovne zbirke, zato jo vsebuje vsaka kopija te datoteke |
| Pravice in beleženje so razpršeni po več mestih | Kaj sme aplikacija, določajo dovoljenja njene prijave v SQL Server in koda vsake aplikacije posebej. Osrednjega zaklepanja, 2FA (dvostopenjskega preverjanja identitete) ali stopnjevanja dostopa glede na lokacijo tako ni |
Kaj zahteva obratovanje. Pri predvidenem načinu dela je podatkovni prehod edina pot do podatkovne zbirke; delovne postaje SQL Serverja ne dosežejo. Zato mora prek prehoda iti vsak dostop aplikacije, tudi poizvedba, ki SQL nespremenjen pošlje podatkovni zbirki (prepustna poizvedba), in dostop iz VBA prek ADO.
Primeri uporabe
| Primer uporabe | Kdo | Kako |
|---|---|---|
| Tabele obstoječe aplikacije Access povezati, brati, filtrirati in urejati v podatkovnem listu in obrazcih; pri hkratni spremembi Access prikaže konflikt | referenti | Access prek gonilnika ODBC za OData |
| Prepustne poizvedbe in dostopi ADO v istih aplikacijah Access | referenti | isti gonilnik in prepustna pot prehoda |
| Analize in poročila | kontroling, vodstvo | Excel in Power BI s Power Query (vir OData), brez gonilnika |
| Delo v pisarni, od doma brez VPN, pri stranki ali na poti | iste osebe | isti programi; v omrežju podjetja preprosta prijava, zunaj njega z 2FA, pri stranki časovno omejen ključ samo za branje |
| Podatkovna zbirka naj ve, kdo je spremembo naredil (polje “ustvaril”, sprožilci, pogledi za posamezno osebo) | poslovna aplikacija | posredovanje identitete osebe SQL Serverju |
| Lastni programi dostopajo do podatkov | razvoj | HTTP z JSON ali XML; odjemalec .NET, razred VBA |
| Upravljanje oseb, ključev, 2FA in pravic | skrbniki | aplikacija za upravljanje za Access prek skrbniškega vmesnika |
Preučene alternative
| Alternativa | Ugotovitev |
|---|---|
| Neposreden dostop do SQL Serverja v omrežju podjetja in prek VPN | v pisarni v celoti pokrije primere uporabe, vendar je v nasprotju z načinom dela brez neposrednega dostopa do podatkovne zbirke in ne odpravi zgoraj opisanih težav |
| Povezava Accessa s podatkovnimi storitvami (Data Services) | temelji na Business Connectivity Services, ne na OData; povezana tabela je samo za branje (Microsoft: Link to a Data Service) |
| Samo Power Query | zadošča za branje v Excelu in Power BI, pisanje pa ni predvideno |
| Programski vmesnik z lastnimi funkcijami ali procedurami za vsako tabelo | vsaka nova tabela in vsaka sprememba sheme zahtevata spremembo vmesnika, programi Office pa takega vmesnika ne morejo povezati kot tabelo. Izbran je bil zato prehod, ki stavek SQL sestavi iz zahteve (metoda, tabela, ključ, polja), tabele pa prebere iz kataloga podatkovne zbirke |
Gospodarski vidik
- Brez licenčnin za posamezno delovno postajo. Za podatkovni prehod, gonilnik in odjemalca se licenca na delovno postajo ne plačuje.
- Obstoječe aplikacije Access ostanejo. Ni jih treba napisati na novo: spremenijo se samo povezave njihovih tabel in poizvedb, obrazci in poročila pa ostanejo, kakršni so. Če aplikacija povezave ob zagonu sestavi sama v kodi, je treba to kodo nekoliko prilagoditi.
- Tekoči stroški nastanejo z obratovanjem in vzdrževanjem podatkovnega prehoda in gonilnika.
Omejitve rešitve
- Kot podatkovna zbirka je podprt samo SQL Server. Prehod se s podatkovnimi zbirkami povezuje prek ponudnikov, ki jih je mogoče naložiti naknadno (glejte Konfiguracija prehoda); priložen je ponudnik za SQL Server.
- Gonilnik ODBC za OData ne ponuja vseh zmožnosti gonilnika ODBC za SQL Server. Katere manjkajo, navaja dokumentacija gonilnika (“Omejitve in znane pomanjkljivosti”).
- Ena skrbniška shramba lahko služi samo enemu primerku prehoda. Odpornosti na izpad z dvema primerkoma ni (glejte Skrbniška shramba in glavni ključ).
- Nova odvisnost: če prehod izpade, nobena delovna postaja ne pride do podatkov. Pri neposrednem dostopu je dosegljivost odvisna samo od strežnika podatkovne zbirke.