Skip to content

Administration_Datenbankschutz

Florian Fehring edited this page May 7, 2024 · 1 revision

Über die Konfigurationsdatei können Mechanismen zum Schutz der Datenbank konfiguriert werden.

HardLimit

Das HardLimit legt die maximal in einer Anfrage abrufbaren Datensätze fest, wurde kein HardLimit definiert können beliebig viele Datensätze mit einer Anfrage angefragt werden was ggf. zu einer Auslastung des Datenbanksystems führt.

Beispiel zum Festlegen des HardLimits auf 100.000 Datensätze muss in der SmartData_config.properties folgender Eintrag vorgenommen werden:

hardLimit = 100000

Datenbankzugriffe

Um die Datenbankzugriffe abzusichern, wird der SmartUser MicroService verwendet. Die Integration befindet sich im SmartData und wird über die Konfigurationsdatei (SmartDataMeineApp_config.properties) eingestellt.

Die folgenden Schritte sind notwendig:

  1. Anlegen eines Application-Users im SmartUser (wird wie ein normaler User angelegt)
  2. Festlegen eines "authtoken" für den Application-User
  3. Gewähren des GRANT-Rechtes auf die Root-Resource für den Application-User (in Tabelle userrights)
  4. Konfigurieren der SmartData (SmartDataABC_config.properties) Instanz mit Angabe von:
smartuser.url = http://localhost:8080/SmartUser
smartuser.apptoken = AUTHTOKEN-DES-APPLICATION-USERS

Anschließend werden automatisch die CRUD Rechte zu einem Datensatz gesetzt, wenn ein Benutzer diesen über die SmartData Schnittstelle anlegt. Nur der anlegende Nutzer kann den Datensatz auch wieder abrufen (so lange kein anderer Nutzer mit entsprechenden Zugriffsrechten eingestellt wird). Das wirkt sich auch auf den Abruf einer Liste von Datensätzen aus, der Benutzer sieht immer nur die Datensätze, auf denen er Rechte hat.

Hinweise:

  • Benutzern können natürlich Rechte auf fremde Datensätze eingeräumt werden durch entsprechende Einträge in die userrights Tabelle
  • Benutzern kann auch das Recht eingeräumt werden, alle Datensätze einer Tabelle zu sehen, während andere Benutzer nur ihre eigenen sehen können.
  • Siehe auch Dokumentation des SmartUser
  • smartuler.url sollte immer eine localhost-URL sein, um die Latenz niedrig zu halten

Alternative Konfiguration:

authmode = jdbc
smartuser.url = http://localhost:8080/SmartUser
smartuser.apptoken = AUTHTOKEN-DES-APPLICATION-USERS
smartuser.db_uri = jdbc:postgresql://localhost:5432/DATENBANKNAME
smartuser.db_user = DATENBANKNUTZERNAME
smartuser.db_pwd = DATENBANKNUTEZRPASSWORT

Die alternative Konfiguration führt die Rechteprüfung über eine direkte Verbindung zur Datenbank durch. Das Setzen der Berechtigung wird aber immer über SmartUser ausgeführt.

Clone this wiki locally