Oracle Database · · 3 Min.

Oracle Database Links: Least Privilege für Anwendungen

Ein Datenbank-Link schafft einen direkten Pfad in eine zweite Datenbank. Private Links und ein eng begrenzter Remote-Account halten diesen Pfad kontrollierbar.

Ein Database Link macht entfernte Tabellen in SQL bequem erreichbar, etwa über orders@archive_db. Genau diese Bequemlichkeit verdient eine klare Sicherheitsgrenze: Wer den Link verwenden darf, kann über ihn auf die Rechte des Remote-Kontos zugreifen. Wird ein Link mit einem mächtigen Konto angelegt oder unnötig vielen Nutzern bereitgestellt, wird die Verbindung schnell zum seitlichen Zugang in ein weiteres System.

Privat als Standard, öffentlich nur mit Begründung

Ein normal angelegter Datenbank-Link ist privat und steht nur seinem Eigentümer zur Verfügung. Ein Public Database Link ist dagegen für alle Benutzer sichtbar. Für eine Anwendung ist ein privater Link im Parsing-Schema meist die besser begrenzte Wahl: Der Zugriff ist an das Schema gebunden, in dem die Anwendung läuft, statt pauschal allen Datenbankkonten offen zu stehen.

Auch beim privaten Link entscheidet die Remote-Identität über den tatsächlich erreichbaren Datenbestand. Ein Fixed-User-Link verwendet immer das konfigurierte Konto. Geben Sie diesem Konto deshalb ausschließlich die benötigten Rechte – beispielsweise SELECT auf gezielte Views statt breite Systemrechte. Ein Link mit Remote-DBA-Rechten bleibt gefährlich, selbst wenn er privat ist.

Kontenmodell bewusst wählen

Oracle unterstützt Fixed-User-, Connected-User- und Current-User-Links. Connected-User-Links verwenden die Anmeldedaten des lokal verbundenen Benutzers; Current-User-Links hängen vom Ausführungskontext ab. Diese Varianten sind nicht einfach austauschbar: Prüfen Sie, welcher Benutzer bei direkter Abfrage oder beim Aufruf aus einem gespeicherten PL/SQL-Objekt tatsächlich verwendet wird. Testen Sie den Zugriff mit der Identität, unter der die Anwendung später arbeitet, und prüfen Sie die Remote-Rechte separat.

Weniger Daten über die Verbindung schicken

Sicherheit und Performance profitieren von engeren Abfragen. Begrenzen Sie Spalten und Zeilen bereits auf der Remote-Seite, nutzen Sie dort passende Views und vermeiden Sie große verteilte Joins in häufig aufgerufenen OLTP-Pfaden. Jede unnötige Datenmenge erhöht Netzwerkverkehr und Laufzeit. Für wiederkehrende Auswertungen kann eine kontrollierte lokale Kopie oder materialisierte Sicht geeigneter sein als eine Live-Abfrage über den Link.

Praktische Betriebsprüfung

  1. Vorhandene Links in USER_DB_LINKS beziehungsweise als DBA in DBA_DB_LINKS inventarisieren.
  2. Eigentümer, Remote-Benutzer, Ziel-Service und fachlichen Zweck dokumentieren.
  3. Public Links und Konten mit weitreichenden Rechten besonders prüfen.
  4. Remote-Rechte auf benötigte Objekte begrenzen und ungenutzte Links entfernen.
  5. Nach Netzwerk- oder Credential-Änderungen den Verbindungsweg und den Zugriff mit einer kleinen Testabfrage verifizieren.

Bei einem Fixed-User-Link sollte das Passwort weder in ein öffentliches Repository noch in frei zugängliche Deployment-Protokolle gelangen. Planen Sie Rotation und Aktualisierung als Betriebsaufgabe und klären Sie vorher, welche Anwendungen den Link verwenden.

Fazit

Database Links sind nützlich, wenn Anwendungen kontrolliert auf entfernte Oracle-Daten zugreifen müssen. Private Bereitstellung, minimale Remote-Rechte, ein nachvollziehbarer Eigentümer und kleine Datenmengen reduzieren das Risiko und machen Störungen leichter eingrenzbar.

Weiterführend: Oracle-Dokumentation zu CREATE DATABASE LINK und zur Verwaltung verteilter Datenbanken.