Page 1 of 2

Verständnisfrage zur DB-Erstellung

Posted: Fri 11. Aug 2023, 11:24
by technotravel
Mir ist aufgefallen, dass ein KH-Benutzer nur jeweils eine Datenbank pro Benutzername erstellen kann. Wird derselbe Benutzername für eine neue DB versucht, erscheint eine Fehlermeldung.

So ganz erschließt sich mir der Sinn dahinter nicht. Warum sollte derselbe Benutzer nicht mehrere DB mit unterschiedlichen Namen erstellen können?

Gibt es eine Möglichkeit, diese Einschränkung auszuschalten?

Re: Verständnisfrage zur DB-Erstellung

Posted: Fri 11. Aug 2023, 11:31
by Florian
Hallo,

Keyhelp ist für Webhosting konzipiert, und hier reicht es in 99 Prozent der Fälle aus, dass ein DB-Benutzer eine Datenbank hat.

Ich will nicht ausschließen, dass Alex das ggf. nochmal ändert wenn gewünscht. Momentan musst Du aber die Datenbankrechte manuell anpassen, wenn ein DB-User mehrere Datenbanken verwalten soll.

Re: Verständnisfrage zur DB-Erstellung

Posted: Fri 11. Aug 2023, 11:46
by technotravel
Danke Florian.

Ich fände das nützlich. Könnte man ja ähnlich gestalten wie bei der DB-Namensgebung, als Option in der Konfiguration (Checkbox "mehrere Datenbanken pro DB-Nutzer gestatten - ja/nein").

Könnte das bitte jemand in die Feature Requests verschieben?

Re: Verständnisfrage zur DB-Erstellung

Posted: Fri 11. Aug 2023, 20:35
by OlliTheDarkness
technotravel wrote: Fri 11. Aug 2023, 11:24 ...
So ganz erschließt sich mir der Sinn dahinter nicht. Warum sollte derselbe Benutzer nicht mehrere DB mit unterschiedlichen Namen erstellen können?
...
Hinweiß: Suche benutzen, das Thema haben wir schon durchgekaut.

Dann hast du dir nicht wirklich Gedanken gemacht.

Ein User für mehrere DBs ist vom Sicherheitsaspekt für den Arsch.

Hättest du 1 User mit 10 DBs und es würde nur 1 DB kompromitiert, zb. ganz dummes Beispiel, die Configfile anstatt php, html genannt, dumm gelaufen zugangsdaten liegen offen.
Oder nen Wordpress Blog oder oder oder.

Ergebnis is egal wie es drehst das selbe, du kannst dich von allen 10 DBs verabschieden, weil sie alle über den versehentlich offengelegten User / Pass offengelegt wurden und damit manipuliert sein könnten.

Auf so nen Horrer Szenario kann man getrost verzichten.

Daher pro User 1 DB.

1 DB geknackt, pech, aber die anderen sind sicher.

Es steht dir frei einem User die Rechte zu anderen DBs zu geben, geht schnell und einfach über PHPMyAdmin / Adminer / MySQL Shell.

Aber im Panel hat die Option nichts zu suchen, dass würde den Sicherheitsaspekt untergraben.

Re: Verständnisfrage zur DB-Erstellung

Posted: Sat 12. Aug 2023, 09:37
by Sheldon Cooper
OlliTheDarkness wrote: Fri 11. Aug 2023, 20:35 Ein User für mehrere DBs ist vom Sicherheitsaspekt für den Arsch.

Hättest du 1 User mit 10 DBs und es würde nur 1 DB kompromitiert, zb. ganz dummes Beispiel, die Configfile anstatt php, html genannt, dumm gelaufen zugangsdaten liegen offen.
Oder nen Wordpress Blog oder oder oder.

Ergebnis is egal wie es drehst das selbe, du kannst dich von allen 10 DBs verabschieden, weil sie alle über den versehentlich offengelegten User / Pass offengelegt wurden und damit manipuliert sein könnten.

Auf so nen Horrer Szenario kann man getrost verzichten.

Daher pro User 1 DB.

1 DB geknackt, pech, aber die anderen sind sicher.
Irgendwie hast du da einen Denkfehler.

Ich greife mal dein Beispiel auf, ein User hat 10 Webseiten auf seinem Server laufen.
Variante 1, für jede Webseite existiert 1 DB, wenn eine der DB kompromittiert wurde, sind die anderen 9 DB immer noch safe.
Variante 2, es existiert 1 DB und jede Webseite nutzt in dieser DB unterschiedliche Präfixe. Wenn diese DB komromttiert wurde, dann sind auch die Daten aller 10 Webseiten komromittiert.

Erkennst du deinen Logikfehler?

Re: Verständnisfrage zur DB-Erstellung

Posted: Sat 12. Aug 2023, 11:56
by 24unix
Wo genau ist denn das Problem, für jedes Projekt/Seite einen eigenen User anzulegen?
Frisst doch kein Brot …

Re: Verständnisfrage zur DB-Erstellung

Posted: Sat 12. Aug 2023, 12:22
by Jolinar
24unix wrote: Sat 12. Aug 2023, 11:56 Wo genau ist denn das Problem, für jedes Projekt/Seite einen eigenen User anzulegen?
Frisst doch kein Brot …
Das funktioniert solange, wie der Serveradmin auch der Seitenbetreiber ist.
Wenn du allerdings Webspaces für Andere zur Verfügung stellst, kannst du doch nicht für jeden 'Kunden' je nach Bedarf mehrere User im Panel anlegen...

Re: Verständnisfrage zur DB-Erstellung

Posted: Sat 12. Aug 2023, 12:29
by 24unix
Jolinar wrote: Sat 12. Aug 2023, 12:22
24unix wrote: Sat 12. Aug 2023, 11:56 Wo genau ist denn das Problem, für jedes Projekt/Seite einen eigenen User anzulegen?
Frisst doch kein Brot …
Das funktioniert solange, wie der Serveradmin auch der Seitenbetreiber ist.
Wenn du allerdings Webspaces für Andere zur Verfügung stellst, kannst du doch nicht für jeden 'Kunden' je nach Bedarf mehrere User im Panel anlegen...
Es geht doch nicht um die Paneluser, sondern die DB User.

Ich habe einen, der kann so viele DB anlegen wie er will:
SCR-20230811-kzil.png
Ist halt für jedes Projekt ein DB-User.
SCR-20230811-kzqw.png

Re: Verständnisfrage zur DB-Erstellung

Posted: Sat 12. Aug 2023, 12:42
by Jolinar
24unix wrote: Sat 12. Aug 2023, 12:29 Es geht doch nicht um die Paneluser, sondern die DB User.
Okay, dann macht dein letzter Beitrag natürlich Sinn.
Ich hatte es so gelesen, daß Paneluser gemeint seien. 8-)

Re: Verständnisfrage zur DB-Erstellung

Posted: Mon 14. Aug 2023, 09:53
by Alexander
technotravel wrote: Fri 11. Aug 2023, 11:24 Warum sollte derselbe Benutzer nicht mehrere DB mit unterschiedlichen Namen erstellen können?

Gibt es eine Möglichkeit, diese Einschränkung auszuschalten?

Ich hab das Thema in der Theorie über die Jahre hinweg immer mal wieder im Kopf durchgespielt. Ich bin jedes mal zu dem Schluss gekommen, das es den Aufwand nicht wert ist. Ich rede jetzt nicht vom Aufwand bei mir, der wäre egal. Ich meine den Aufwand der Kunden, die die UI nutzen müssen.

Aktuell ist alles sehr straight forward, man hat eine Übersichtsseite, ein paar Eingabefelder fertig. Wenn man ein System mit Nutzern + beliebig vielen Datenbanken einführt, würde es die UI entsprechend aufblähen. Das wäre prinzipiell verschmerzbar, aber, wieviele Leute würden so ein Feature unbedingt brauchen?
Am Ende wird es für 95% der Nutzer verkompliziert und für 5% stellt es eine Erleichterung dar. Da tendiere ich dann (Stand jetzt) doch eher dazu, das 5% in den sauren Apfel beißen müssen und einfach einen 2. Datenbankbenutzer + Datenbank anlegen, als das ich 95% mit der UI "nerve" :).

Stand jetzt würde ich es eher nicht umsetzen wollen, das kann sich im Laufe der Zeit natürlich ändern.

---

Oder hast du ein bestimmtes Szenario im Kopf, bei dem du so ein Feature brauchen würdest, was aber durch die aktuelle Umsetzung dich vor Probleme stellt? Gern einmal beschreiben, damit ich den use case verstehe.

Re: Verständnisfrage zur DB-Erstellung

Posted: Mon 14. Aug 2023, 10:24
by technotravel
Alexander wrote: Mon 14. Aug 2023, 09:53 Oder hast du ein bestimmtes Szenario im Kopf, bei dem du so ein Feature brauchen würdest, was aber durch die aktuelle Umsetzung dich vor Probleme stellt? Gern einmal beschreiben, damit ich den use case verstehe.
Gern Alex :)

Es geht um Installationen wie seafile oder mailman, die mehrere DBs mit demselben DB-Nutzer anfordern (und diese ggfalls auch selber so per Skript so erstellen).

Der Vorteil, diese DBs im KH-Interface selbst als Benutzer zu erstellen, ist, dass diese DBs dann easy im Backup zu sichern sind - wenn die vom Skript erstellt werden, werden die ja keinem KH-Nutzer zugeordnet.

Also zugegebenerweise ein rare-case scenario ...

Da ich die Argumente gegen die generelle Freigabe ja durchaus verstehen kann, hätte ich mir das so vorgestellt, diese Erlaubnis nur bei solchen spezifischen Anforderungen zu erteilen und danach wieder zu deaktivieren - zumindest für einen Server, der tatsächlich andere Nutzer hat. Daher der Vorschlag mit der Tickbox. Und wenn das auf der Konfigurationsseite ist, ist auch sichergestellt, dass nur ein Admin das aktivieren/deaktivieren kann - ansonsten wäre die Tickbox ja auch auf der DB-Erstellungsseite denkbar.

Re: Verständnisfrage zur DB-Erstellung

Posted: Mon 14. Aug 2023, 10:39
by Alexander
Ah, okay - da hat man mal eine Anwendung gesehen, die mehrere Datenbanken unter einem Nutzer erfordert. Dankeschön.

Workaround:

Datenbanken und Datenbank-Nutzer über KeyHelp anlegen und dann einem Nutzer Zugriffsrechte darauf geben. Entweder per SQL oder über die phpMyAdmin UI.

Zum Beispiel so:

Code: Select all

GRANT ALL PRIVILEGES ON `ccnet_db`.* to `seafile`@localhost;
GRANT ALL PRIVILEGES ON `seafile_db`.* to `seafile`@localhost;
GRANT ALL PRIVILEGES ON `seahub_db`.* to `seafile`@localhost;
Dann kannst du die trotzdem ins Backup mit aufnehmen.

Re: Verständnisfrage zur DB-Erstellung

Posted: Mon 14. Aug 2023, 10:45
by Jolinar
[OT]
Alexander wrote: Mon 14. Aug 2023, 10:39 da hat man mal eine Anwendung gesehen, die mehrere Datenbanken unter einem Nutzer erfordert.
Ist die Anwendung nur schlampig programmiert oder hat es einen bestimmten Grund, warum die nicht mit unterschiedlichen Tabellenpräfixen in einer DB arbeiten?

[/OT]

Re: Verständnisfrage zur DB-Erstellung

Posted: Mon 14. Aug 2023, 10:49
by Alexander
Ich denke mal das haben sie deswegen gemacht, um die Daten der Datenbanken noch besser zu separieren, um besser hervorzuheben, das diese unterschiedlichen Komponenten von Seafile zugeordnet sind.

Kenne Seafile nur vom "sehen". Habe es nie benutzt etc. würde bei der Größe/Bekanntheit der Anwendung aber davon ausgehen, dass sie gute Gründe für die Entscheidung '3 Datenbanken zu nutzen' haben.

Re: Verständnisfrage zur DB-Erstellung

Posted: Mon 14. Aug 2023, 10:51
by Jolinar
Danke für deine Erklärung/Meinung. :mrgreen: