Administrator guide for WKL Database Gateway Manager
WKL Database Gateway Manager, the administration app, is where you decide who can use WKL Database Gateway (Wkl.Data.Gateway) and in what way: people and their keys, rules, the second factor, data sources, and the sign-in policy. The app is an Access application that runs on your workstation; every change is validated and saved by the service itself.
User interface language: The administration app is available in German only. This guide quotes each label in bold exactly as it appears on screen and gives its English meaning in parentheses the first time it appears on a page, for example Weitere (More) > Schlüssel ausstellen … (Issue key …). Later mentions on the same page use only the German label.
Data service documentation: The data service is a separate product with its own documentation. References to it lead to its English pages and are followed by “(data service documentation)”.
graph LR
subgraph AP["Administrator workstation"]
V["Administration app (Access)"]
T["ODBC driver Wkl OData"]
K["VBA class WklGatewayClient"]
V -->|"read and change lists"| T
V -->|"commands"| K
end
subgraph SV["Server"]
D["Data service Wkl.Data.Gateway"]
S[("Administration store: data sources, rules, people, key hashes, sign-in policy")]
D -->|"reads and writes"| S
end
Q[("SQL Server data sources")]
A["Access, Excel, Power BI, custom programs"]
T -->|"OData over HTTP(S) /admin/v1/odata/"| D
K -->|"HTTP(S) /admin/v1/"| D
A -->|"HTTP(S): OData, custom contract"| D
D -->|"TDS, as the data source's login or as the person's identity"| QFigure: Components and connections. The “Workstation” and “Server” boxes are trust boundaries: anything that crosses them is a request to the data service, which authenticates it and checks it against the rules. Neither users nor the administration app ever connect to SQL Server directly. Between computers you need HTTPS, because keys and passwords would otherwise travel in clear text; plain HTTP is acceptable only on the same computer. The VBA class sends a key or password only over HTTPS or to the local computer.
This guide explains how to set up and run the data service with the administration app for Access: connect data sources, give people access, grant rights, secure sign-in, and back up the service.
Audience and prerequisites
This guide is for administrators who set up the data service and grant access. You need:
- a running data service with an administration store (
Gateway:Store), set up as described in Service configuration (reference) (data service documentation); - 32-bit or 64-bit Microsoft Access or Access Runtime, the “Wkl OData” ODBC driver, the WKL Office JSON library 2.0 or later (WKL Access JSON up to release 1.0.3), and the WKL Forms Object Library 2.0 or later (WKL Access Components up to release 1.68.2). Supported: Access from Microsoft 365 or Office LTSC 2024, full version or Runtime, 32-bit and 64-bit. Older versions from Access 2010 on usually work as well, but they aren't acceptance-tested and no longer receive security updates from Microsoft;
- for your own sign-in, a personal key or an assigned Windows account, plus an authenticator app for the second factor.
Features at a glance
- Data sources: Connections to SQL Server databases. You can turn each data source on or off without restarting the service.
- People and personal keys: Everyone signs in with their own key, their Windows account, or their SQL login. Keys expire and can be revoked immediately.
- Rules: What someone can reach—which data sources, which kinds of objects, read or write.
- Second factor: Codes from an authenticator app (TOTP), required by a sign-in policy that you define per scope, sign-in method, and network.
- Database identities: People work under a shared SQL Server login without knowing its password, yet the service still knows who did what.
- Audit trail: A change log of every administrative change, an audit of data access, a list of open sessions, and evidence reports as Excel and PDF.
- Load: What each query shape costs the service and the database, the weekly pattern, and known fixes.
- Sign-ins: Sign-in decisions by time, outcome, and origin (country, city, and network operator from a geolocation database), unusual patterns, and blocking an origin.
Key terms
| Term | Meaning |
|---|---|
| Data service (Datendienst) | The Wkl.Data.Gateway service. It is the only way for users to reach the databases; nothing but the service needs a direct connection to SQL Server |
| Data source (Datenquelle) | A database that the service publishes under a name (alias), for example fachdaten |
| Administration store (Verwaltungsspeicher) | A file belonging to the service that holds everything this guide configures. Changes take effect without a restart. Connection strings and second factors are stored encrypted (master key) |
| Rule (Regel) | A set of rights: data sources, kinds of objects (tables, views, procedures, administration), methods, read-only. People, Windows accounts and groups, and SQL logins are given rules; the rights of several rules add up |
| Person | Someone who uses the service. A person has rules, personal keys, optionally their own Windows account or SQL login, and a second factor |
| Personal key (persönlicher Schlüssel) | One of a person's ways to sign in (starts with wkl_, 53 characters). A key can narrow the person's rights but never extend them. The service stores only the key's SHA-256 hash, a public identifier, and the last four characters; once issued, the key itself exists only with the person (see HTTP: sign-in (reference), section “Personal keys” (data service documentation)) |
| Second factor (zweiter Faktor) | A six-digit code from an authenticator app. It is exchanged once for a session, which lasts 10 hours by default |
| Administration (Verwaltung) | The right to configure the service: a rule that names the admin resource |
| Service key (Dienstschlüssel) | A key for a program rather than a person, defined in the service configuration (sign-in method ApiKey in the sign-in policy). A service isn't a person: it has no second factor, and rules that name people don't apply to it |
| Revoke, disable account (Sperren, Konto deaktivieren) | A revoked key is invalid for good; a revocation can't be undone, you can only issue a new key. A person with a disabled account (check box Konto aktiv (Account enabled) cleared) can't sign in with any method; the account can be enabled again. The command Person sperren … (Lock person …) disables the account and revokes all of the person's keys. In both cases the service's messages say “gesperrt” (locked) |
| Times | Every time in the app and in its emails is Coordinated Universal Time and is marked “UTC”; column headers and fields carry “(UTC)”. The app doesn't convert times to the workstation's time zone: the administrators of one installation and the people receiving an invitation may work in different time zones, and a converted time without its zone would be misread there. Example: 14:30 UTC is 4:30 PM in Vienna in summer, 3:30 PM in winter, and 11:30 PM in Tokyo |
| One-time link (Einmal-Link) | An address where a person picks up their key or second factor exactly once; whoever opens it first gets what's behind it. There are two kinds; see Send an invitation by email |
The administration app
The administration app is an Access file: dbgwmgr_x86.accde for the full version of Access, dbgwmgr_x86.accdr for
the free Access Runtime. This delivery contains the edition for 32-bit Office. 64-bit Office needs its own edition
(dbgwmgr_x64.accde/.accdr); ask the manufacturer for it. When it starts, you see only the sign-in card. After you
sign in, a single window shows the navigation bar on the left and the selected area on the right:
| Group | Area | What it shows |
|---|---|---|
| – | Übersicht (Overview) | Cards for anything that needs attention (data sources down, keys expiring, rejected requests, suspicious sign-ins, people without a second factor, maintenance) and the current load. Clicking a card opens the matching list, filtered where possible; the Pflege (Maintenance) card checks the store. Below the cards, the data sources with problems and their cause (double-click one to open it), or a note that all are reachable. The figures refresh every 10 seconds (Weitere (More) > Aktualisierung anhalten (Pause refresh)); Aktualisieren (Refresh) checks whether the data sources are reachable. Commands: Speicher sichern (Back up store) and Speicher prüfen (Check store) (Back up, restore, and move the administration store (data service documentation)) |
| Personen und Zugang (People and access) | Personen und Schlüssel (People and keys; header: “Personen”) | Work lists with counts on the left (Ohne Regel (No rule), Ohne zweiten Faktor (No second factor) …), people in the middle with multiple selection, the Person and Auswahl (Selection) cards on the right, and optionally, below the list, the Regeln (Rules, Ctrl+R), Zugriffe (data accesses, Ctrl+L), and Sitzungen (Sessions) panes. Expanding a person shows the tabs Schlüssel (Keys), Regeln (Rules), Sitzungen (Sessions), and Protokoll (Log). Main command: Zugang wiederherstellen … (Restore access …), next to it Neue Person … (New person …; one card for name, rights, sign-in, and key) and the commands for the selected person; see below |
| Personen und Zugang (People and access) | Regeln (Rules) | Tree: rules, with their attributes underneath |
| Betrieb (Operations) | Datenbank-Updates (Database updates) | For each database the data service updates: pending packages, sessions, drift, history, and steps; confirm packages, move deadlines, apply failed packages again or dismiss them, upload packages; tab Einstellungen (Settings). See Oversee database updates and decide on packages |
| Überwachen (Monitoring) | Anmeldungen (Sign-ins) | Period, key figures, and chart; tabs Wochenmuster (Weekly pattern), Herkunft (Origin), Karte (Map), Befunde (Findings), Hinweise (Hints), Ereignisse (Events; only with the right), Geodatenbank (Geolocation database). Main command Herkunft sperren … (Block origin); under Weitere, from a finding to its events and to the person's sign-in profile, plus source, update, and upload of the geolocation database |
| Überwachen (Monitoring) | Auslastung (Load) | Period, key figures, and chart; tabs Wochenmuster (Weekly pattern), Abfrageformen (Query shapes; expand for slow requests and hints), Hinweise (Hints), Personen (People; only with the right). Command Ausfuhr für den Hersteller … (Export for the vendor) |
| Überwachen (Monitoring) | Protokoll (Log) | Change log, audit of data access, second-factor sessions |
| Einrichten (Set up) | Datenquellen (Data sources) | Data sources; expand a row to see its table settings |
| Einrichten (Set up) | Identitäten (Identities) | Database identities; expand one to see who may assume it. Tab Sperrliste Identitätswechsel (Impersonation block list), shown as a tree |
| Einrichten (Set up) | Zuordnungen (Assignments) | Windows accounts and groups, SQL logins |
| Einrichten (Set up) | Anmelderichtlinie (Sign-in policy) | Tree: sign-in rules, with their networks underneath; tabs Einstellungen (Settings) and Mailvorlagen (Mail templates) |
The groups follow how often you need them: first the daily work in Personen und Zugang (People and access: people, rules), then Betrieb (Operations) and Überwachen (Monitoring), and last Einrichten (Set up: data sources, identities, assignments, sign-in policy), which you mainly need for a new installation. Einrichten is collapsed when the app starts; click its header to expand it. Day to day, you usually start in Übersicht (Overview); its cards take you to the right list.
On the Personen und Schlüssel page, the commands for the selected person are right in the command bar, ordered by a person's lifecycle:
| Where | Commands |
|---|---|
| Main command | Zugang wiederherstellen … (Restore access …): first shows Warum abgewiesen? (Why rejected?) with the cause and Beheben (Fix) |
| Button | Neue Person … (New person …) (Ctrl+N): name, rights, sign-in, and key in one card |
| Schlüssel (Keys) | Schlüssel neu ausstellen … (Reissue key …) (main part), Schlüssel ausstellen … (Issue key …), Schlüssel sperren … (Revoke key …), Schlüssel freischalten … (Activate key …), Freischaltung beenden (End activation), Schlüssel per Mail senden … (Send key by email …) |
| Zweiter Faktor und Sitzung (Second factor and session) | Zweiten Faktor (neu) einrichten … (Set up second factor (again) …) (main part), Zweiten Faktor entfernen (Remove second factor), Zweiten Faktor per Mail senden … (Send second factor by email …), Sitzung beenden (End session) |
| Rechte (Rights) | Regeln zuordnen … (Assign rules …) (main part), Anmeldung und Rechte … (Sign-in and rights …), Anmeldeprofil … (Sign-in profile …) |
| Right edge | Person sperren … (Lock person …) (Ctrl+E) |
| Weitere (More) | Alle der Arbeitsliste markieren (Select all in work list) (Ctrl+A), Darunter zeigen (Show below): Regeln der Person (Person's rules) (Ctrl+R), Zugriffe der Person (Protokoll) (Person's data accesses (log)) (Ctrl+L), Sitzungen der Person (Person's sessions); Personen importieren … (Import people …); Spalten zurücksetzen (Reset columns) |
In the command bar, the groups Schlüssel, Zweiter Faktor und Sitzung, and Rechte are split buttons: a click runs the group's most frequent command (the main part), and the arrow next to it opens the others. A row's shortcut menu (right-click) offers Zugang wiederherstellen … for that person at the top, the three groups as submenus below it, and Person sperren … after a line, followed by the list's own commands (sort, copy, export …). This guide writes the path as group > command, for example Schlüssel > Schlüssel ausstellen …. Commands that affect the whole list, such as Neue Person … or Personen importieren …, are only in the command bar.
In the screenshot: (1) navigation bar, (2) command bar, (3) cards for items that need action, and the load.
The command bar below the header holds the commands for the list, the area's main command, Weitere (More), Exportieren … (Export …), and Aktualisieren (Refresh). Where each command is and how to reach it from the keyboard: Work with areas, lists, and commands.
Edit form. You edit data sources, rules, people, identities, and sign-in rules in the form to the right of the list (on the Personen und Schlüssel page, in the Person card). It shows the selected entry with all of its fields; when the area opens, the first entry is selected. The create command (for example Neue Datenquelle) clears the form for a new entry; the edit command, a double-click, Enter, or F2 opens the selected entry in it. The entry is saved as soon as you go back to the list. Fields shown in gray without a border are filled in by the service.
Input validation. Before saving, the form checks:
- required fields;
- the name of a data source: the same rules as an ordinary SQL Server name; it starts with a letter or
_, followed by letters, digits, or@ # $, up to 128 characters; - the values of the
resourceandverbattributes; - networks in
fromandexcept_from, for example10.0.0.0/8or2001:db8::/32; an IPv4 address always needs all four octets; - for a shared-login identity, the shared login.
If something is wrong, the field gets a red border, the message appears as a tooltip on the field and as a summary below the form's title, the entry isn't saved, and the cursor stays in the form. Anything only the service can know (such as whether a shared login exists in SQL Server) is checked by the service when you save; if it rejects the entry, you see the reason. Correct your input, or press Esc to discard it.
Trees. Rules, the block list, and sign-in rules are shown as trees.
- Rules and block list: Each kind of entry has its own form; edit and delete follow the selected entry.
- Neue Regel (New rule) or Neuer Sperreintrag (New block-list entry) creates a top-level entry, also when an entry is selected.
- Merkmal hinzufügen … (Add attribute …) (block list: Weitere > Merkmal zum Sperreintrag hinzufügen …) creates an attribute below the selected rule; the form already links the new attribute to the rule.
- Regel löschen … (Delete rule …) or Sperreintrag löschen … (Delete block-list entry …) deletes the selected entry and everything below it.
- Attributes can be created and deleted but not changed; Merkmal ansehen (View attribute) only displays an existing one.
- Sign-in rules: You edit a rule as a whole in the Anmelderegel (Sign-in rule) dialog: Neue Anmelderegel … (New sign-in rule …) opens it for a new rule, and Anmelderegel bearbeiten … (Edit sign-in rule …) or a double-click opens it for the selected rule (see Define the sign-in policy).
Filtered lists. When a card on the overview opens a list, the list shows why it is filtered as a filter button, for example “Ohne zweiten Faktor ✕”; on the Personen und Schlüssel page, the matching work list on the left is selected as well. Click the button (or press Del) to remove the filter and show all entries again.
Detail lists (the arrow at the start of a row) and lists without a form work like an Access datasheet: a change is saved as soon as you leave the cell. Right-click for the shortcut menu with New, Delete, Copy, and Export; Shift+F9 reloads the list. In lists with detail views, Ctrl++ and Ctrl+- expand and collapse the details instead of creating or deleting entries. Each list remembers column widths, column order, sorting, grouping, and filters for your Windows account; Weitere > Spalten zurücksetzen restores the original layout.
Security and privacy
The administration app is a tool that gives people access to databases. Whoever can use it can grant rights, and much of what it handles is personal data.
What needs protecting
| Asset | Where it lives | How it's protected |
|---|---|---|
| Personal keys | only with the person; the administration store keeps the SHA-256 hash | issued only as a one-time link; the app never displays a key and never stores one in its file. Administrators can have their own key saved in Windows Credential Manager (check box Schlüssel speichern (Save key) on the sign-in card) |
| Second factor | the secret, encrypted, in the administration store; a copy in the person's app | set up by one-time link or at first sign-in within a limited time window; see Second factor |
| Right to administer | a rule with the admin resource | the service requires the second factor for it with every sign-in method (a fixed minimum that can be turned off only in the service's configuration file); every change is recorded in the change log |
| Data in the data sources | SQL Server | reachable only through the data service, subject to rules and the sign-in policy |
Personal data
| Data | Where | How long |
|---|---|---|
| For each person: name, Windows account, SQL login, email address, rules, and key identifiers | The service's administration store | Until you change them or delete the person |
| Every change with its before and after values | The service's change log | No time limit; the service doesn't remove entries |
| For each access: time, caller, origin, and target | The audit, in the service's log file | As long as the service keeps it, also across a restart (Read the log and sessions, Notes) |
| Address and method of the last sign-in, settings for invitation emails, layout of the lists | settings.json in the user profile | Until you choose Lokale Daten entfernen (Remove local data) |
| Hourly figures of the Auslastung and Anmeldungen areas (without people or addresses) | Locally in the app | Until you sign out |
| An import of people | Locally in the app | Until the import is closed or the session ends |
| The result of the last command for several people ("Auswahl" card) | Locally in the app | Until the next command or sign-out |
| Exported lists (Exportieren …) | Files you choose | Outside the app; you manage them yourself |
Responsibility under the GDPR. The controller as defined in Art. 4(7) GDPR is the organization that operates the installation, not the software vendor. The operator is responsible for the legal basis of the processing (Art. 6), the entry in the record of processing activities (Art. 30), the technical and organizational measures (Art. 32), and the periods after which data is erased (Art. 5(1)(e)). The app helps by never disclosing keys, by protecting administrative sign-ins with a second factor, and by deleting temporary local data. It doesn't replace any of these obligations. Text of the regulation: https://eur-lex.europa.eu/eli/reg/2016/679/oj.
Limitations
- Anyone who can write to the administration store file on the server (the service account, administrators of that computer) can also change the change log. The log is deliberately not tamper-proof (see Administration store and master key, section “Change log and audit evidence” (data service documentation)).
- The change log is kept indefinitely, and the service offers no way to delete or pseudonymize entries—not even for a deleted person. Their values (name, Windows account, email address) remain in the rows of their changes and in backups of the file. Operators must assess this with regard to storage limitation and erasure (Art. 5(1)(e) and Art. 17 GDPR) in their retention and deletion policy (see Administration store and master key, section “Retention and deletion” (data service documentation)).
- The app's delivery file isn't signed (see Set up the administration app on a workstation).
Common situations
The table lists the most common situations and where to find the steps. Most of them start in Personen und Schlüssel with the person selected and a command in the command bar or the shortcut menu (right-click).
| Situation | What to do | Guide |
|---|---|---|
| New employee | Neue Person …: one card that ends with handing over the one-time links | Create a person and issue a key |
| New installation, many people at once | Personen importieren …: read a list from a CSV file, review it, Übernehmen (Apply) | Import many people at once |
| Give many people the same rule, key, or second factor | Pick a work list on the left, press Ctrl+A, and run a command in the Auswahl card | Work with many people at once |
| “X needs access to Y” | Regeln zuordnen …: one check box per rule, saved immediately | Create a person and issue a key, Create a rule |
| A new table needs to be reachable | Edit the rule and pick the table from the suggestions under Objekte (Objects) | Create a rule |
| Phone call: “I can't get in” | Zugang wiederherstellen … (Restore access …): the latest rejections with their cause and Beheben (Fix) | Troubleshooting |
| Employee leaves, device lost | Person sperren …: disables the account, revokes all keys, ends the sessions | Revoke a key or lock a person |
| A key is about to expire or is lost | Overview, card Schlüssel laufen ab (Keys expiring), then Schlüssel neu ausstellen … | Issue a presentation key and replace a lost key |
| New phone | Zweiten Faktor (neu) einrichten … | Second factor |
| Send the link by email instead of passing it on yourself | Schlüssel per Mail senden …, Zweiten Faktor per Mail senden … | Send an invitation by email |
| Presentation with Power BI | Schlüssel freischalten … for the hours of the meeting | Issue a presentation key and replace a lost key |
| Personal device, broker, contractor: who may do what on which device | A restricted key per device, rules per object, an expiration date; check with Anmeldung und Rechte … (Sign-in and rights …) | Set up access for each trust situation |
| No code in the office, code when away | Sign-in policy templates, the person with Neue Person …, then check with Anmeldung und Rechte … | Set up a person's access by location |
| A database's password or server has changed | Edit the data source, Prüfen und speichern (Check and save) | Connect a data source |
| The service is slow or the database is under heavy load | Auslastung area: period, query shapes by total time, Hinweise tab | Find out what is loading the service and the database |
| Many refusals, sign-ins from unfamiliar networks | Anmeldungen area: Hinweise and Herkunft, then Herkunft sperren … | Review sign-ins and where they come from |
| Weekly maintenance | Overview, card Pflege: back up and check the store, certificate | Back up, restore, and move the administration store (data service documentation) |
| A database update waits for confirmation or has failed | Datenbank-Updates area: Offene Pakete, Sitzungen, then Paket bestätigen … | Oversee database updates and decide on packages |
How-to guides
Setup
- Install the data service (data service documentation) (data service, on the server)
- Create the first administrator (data service documentation) (data service, on the server)
People and access
Rights
Security
Auditing
Load
Operations
- Back up, restore, and move the administration store (data service documentation) (data service, on the server)
- Change the master key (data service documentation) (data service, on the server)
- Regain access when administration is locked out (data service documentation) (data service, on the server)
Problems
Limitations
- Signing in with a Windows account is supported with NTLM, not with Kerberos in a domain.
- The user interface is in German.
- Figures from the data service in this guide (for example a 15-minute lockout, 72-hour validity, 300 requests per minute) are its defaults at the time of writing. The values in the data service documentation take precedence.
Related topics
- Wkl.Data.Gateway data service: overview (data service documentation): concepts, how-to guides, and a reference with the HTTP contract, configuration, and all responses
- VBA class `WklGatewayClient`: administration commands from your own VBA applications