Universelle Benutzer für Datenbanken ?

micha854
Posts: 6
Joined: Fri 28. Jun 2019, 11:47

Universelle Benutzer für Datenbanken ?

Post by micha854 »

Hallo,

ich bin neu und habe mir auf einem VPN mit Debian 9 Keyhelp erfolgreich installiert.

Benutzer und Datenbanken angelegt, soweit so gut. Doch gibt es die möglichkeit für alle Datenbanken eines Benutzers einen universellen Benutzer anzulegen?

Ich kenne es auf plesk zb.

Unter Konfiguration / Datenbank-Server habe ich schonmal die Option --> Individuelle Datenbank- / Benutzernamen gefunden

allerdings kann nur jeder DB nutzer 1x existieren....

Ich habe leider durch suchen im Forum, google etc. leider nichts zu diesem thema finden können und wäre dankbar wenn mir da geholfen werden kann

Lg
Micha
User avatar
Tobi
Community Moderator
Posts: 2812
Joined: Thu 5. Jan 2017, 13:24

Re: Universelle Benutzer für Datenbanken ?

Post by Tobi »

Die Datenbanken funktionieren benutzerübergreifend.

Kennt User A das DB Passwort von User B kann A auf die Inhalte in DB B zugreifen.
Gruß,
Tobi


-----------------------------
wewoco.de
Das Forum für Reseller, Digital-Agenturen, Bildschirmarbeiter und Mäuseschubser
micha854
Posts: 6
Joined: Fri 28. Jun 2019, 11:47

Re: Universelle Benutzer für Datenbanken ?

Post by micha854 »

Hallo, alles klar vielen dank

dann müsste folgendes so funktionieren (alle db_user haben dasselbe Password):

db_connect() {
// Zugangsdaten für die DB
$dbhost = 'localhost';
$dbuser = 'user_db1';
$dbpass = 'PASSWORD';
$dbname = 'user_db1';
......

SELECT * FROM data // zugriff auf user_db1

SELECT * FROM user_db2.data // zugriff auf user_db2

hoffe ich habe es richtig verstanden
User avatar
Tobi
Community Moderator
Posts: 2812
Joined: Thu 5. Jan 2017, 13:24

Re: Universelle Benutzer für Datenbanken ?

Post by Tobi »

Ja, sieht augenscheinlich erstmal gut aus.
Gruß,
Tobi


-----------------------------
wewoco.de
Das Forum für Reseller, Digital-Agenturen, Bildschirmarbeiter und Mäuseschubser
micha854
Posts: 6
Joined: Fri 28. Jun 2019, 11:47

Re: Universelle Benutzer für Datenbanken ?

Post by micha854 »

also wenn ich mich mit "user_db1" einlogge und folgenden mysql befehl ausführe:

SELECT * FROM user_db2.tabelle

bekomme ich leider keinen zugriff...

MySQL meldet:
#1142 - SELECT Befehl nicht erlaubt für Benutzer 'user_db2'@'localhost' auf Tabelle 'rechnungen'




-----------------------------------------------------------------------------------------------------------------------------
SELECT * FROM tabelle // funktioniert ---> daten aus "user_db1"
SELECT * FROM user_db1.tabelle // funktioniert ---> daten aus "user_db1"

SELECT * FROM user_db2.tabelle // FEHLER


was mache ich falsch ?
User avatar
Martin
Posts: 984
Joined: Wed 20. Jan 2016, 00:43

Re: Universelle Benutzer für Datenbanken ?

Post by Martin »

Hallo,

dies ist so vollkommen korrekt. Jeder User hat entsprechend nur Zugriff auf seine Datenbank. Mehrere Webuser können aber für den Zugriff auf die Datenbank natürlich einen identischen Datenbanknutzer verwenden.
Viele Grüße,
Martin
micha854
Posts: 6
Joined: Fri 28. Jun 2019, 11:47

Re: Universelle Benutzer für Datenbanken ?

Post by micha854 »

ok evtl. ein kleines Missverständniss...

ich möchte folgendes erreichen:

ein kunde (example.com) erstellt 3 datenbanken (db1, db2, db3), alle datenbanken müssen ja laut panel unterschiedliche benutzer haben (also user1, user2 und user3)

wir bekomme ich es hin das ich mit einem user auf alle 3 dbs zugreifen kann ? ein universeller benutzer wie zb. in plesk ist ja anscheinend so nicht möglich ?
User avatar
Tobi
Community Moderator
Posts: 2812
Joined: Thu 5. Jan 2017, 13:24

Re: Universelle Benutzer für Datenbanken ?

Post by Tobi »

Ach so, sorry, da hatte ich vorhin nur flüchtig geschaut.
Du muss natürlich für Datenbank 2 die Zugangsdaten von DB 2 verwenden.

Aber du kannst mit Webuser 1 auf die DBS von User 2 zugreifen. Dein Skript musst du halt so anpassen, dass es mehrere Zugangsdaten verwalten kann.

Und du kannst keine Joins auf zwei unterschiedliche DBS machen. Immer nur eine pro Anfrage.
Gruß,
Tobi


-----------------------------
wewoco.de
Das Forum für Reseller, Digital-Agenturen, Bildschirmarbeiter und Mäuseschubser
micha854
Posts: 6
Joined: Fri 28. Jun 2019, 11:47

Re: Universelle Benutzer für Datenbanken ?

Post by micha854 »

Tobi wrote: Fri 28. Jun 2019, 17:35 Aber du kannst mit Webuser 1 auf die DBS von User 2 zugreifen. Dein Skript musst du halt so anpassen, dass es mehrere Zugangsdaten verwalten kann.
Okay dann wären das schonmal die zwei datenbank-verbindungen:

// MySQL-Connect-Daten
$db1_server = "localhost"; // Server
$db1_user = "user_1"; // Benutzer
$db1_pwd = "password"; // Passwort
$db1_name = "db_1"; // Datenbankname

// Verbindung herstellen, wenn nicht erfolgreich -> scrpt abbrechen
$db1 = @mysql_connect($db1_server, $db1_user, $db1_pwd) or die ("Konnte Verbindung zum MySQL-Server nicht herstellen!");
// Datenbank auswählen, wenn nicht erfolgreich -> Script abbrechen
@mysql_select_db($db1_name) or die ("Konnte Datenbank nicht finden!<br>" . mysql_error());

----------------------------------------------------------------------------------------------------------------------

$db2_server = "localhost"; // Server
$db2_user = "user_2"; // Benutzer
$db2_pwd = "password"; // Passwort
$db2_name = "db_2"; // Datenbankname

// Verbindung herstellen, wenn nicht erfolgreich -> scrpt abbrechen
$db2 = @mysql_connect($db2_server, $db2_user, $db2_pwd) or die ("Konnte Verbindung zum MySQL-Server nicht herstellen!");
// Datenbank auswählen, wenn nicht erfolgreich -> Script abbrechen
@mysql_select_db($db2_name) or die ("Konnte Datenbank nicht finden!<br>" . mysql_error());


$query = mysql_query("SELECT * FROM tabelle", $db1) // zugriff auf DB_1

$query = mysql_query("SELECT * FROM tabelle", $db2) // zugriff auf DB_2


Tobi wrote: Fri 28. Jun 2019, 17:35 Und du kannst keine Joins auf zwei unterschiedliche DBS machen. Immer nur eine pro Anfrage.

wie siehts denn aus mit UNION ALL ?

SELECT * FROM DB_1 UNION ALL SELECT * FROM DB_2 WHERE......


Am liebsten wäre mir natürlich ein universeller Benutzer welcher eben zugriff auf alle Datenbanken erhält (Innerhalb eines Panel Benutzers natürlich)

das muss doch machbar sein ?

EDIT:

habe nun in der SSH console folgenden Befehl ausgeführt:

GRANT ALL PRIVILEGES ON *.* TO 'superuser'@'localhost' WITH GRANT OPTION;



superuser hat nun root rechte und zugriff auf alle datenbanken,

kann ich das eingrenzen? auf nur die datenbanken des zugehörigem benutzerkonto welches in KeyHelp für den benutzer angelegt wurde?


EDIT:

Thrend kann geschlossen werden ! Lösungsansatz anhand eines Beispiels:

in KeyHelp legt der Admin User einen neuen Kunden an, der Kunde legt sich 3 Datenbanken (db_1, db_2, db_3) an

jede Datenbank hat einen individuellen Benutzer, jede Datenbank ist individuell.

1) per SSH als root einloggen

2) mysql -u root -p

3) einen Neuen mysql Benutzer erstellen:

CREATE USER 'master'@'localhost' IDENTIFIED BY 'password';

4) Nun dem neu angelegtem benutzer alle nötigen datenbanken zuweisen:

GRANT ALL ON db_1.* TO 'master'@'%' IDENTIFIED BY 'password';
GRANT ALL ON db_2.* TO 'master'@'%' IDENTIFIED BY 'password';
GRANT ALL ON db_3.* TO 'master'@'%' IDENTIFIED BY 'password';

5) zum schluss noch:

FLUSH PRIVILEGES;

Fertig, Benutzer "master" hat nun zugriff auf alle 3 Datenbanken
christian.john
Posts: 228
Joined: Tue 9. Apr 2019, 16:31
Location: Korschenbroich
Contact:

Re: Universelle Benutzer für Datenbanken ?

Post by christian.john »

Hallo,

ich schließe mich Micha an. Es wäre super, wenn man pro Benutzer einen Benutzer-Super-DB-User anlegen könnte, der auf alle Datenbanken des Benutzers Zugriff hat.

+1

Christian
Individuelle Entwicklung webbasierter Datenbanksysteme
https://www.john-softwareentwicklung.de
User avatar
OlliTheDarkness
Posts: 1854
Joined: Tue 14. Aug 2018, 16:41
Location: Essen (NRW)

Re: Universelle Benutzer für Datenbanken ?

Post by OlliTheDarkness »

<< Spielverderber 8-)

Dagegen aus jedem nur erdenklichem Sicherheitsaspekt.

-1
Mit freundlichen Grüßen
OlliTheDarkness

**************************************************************
Helden leben lange, Legenden sterben nie

:!: World Hack Organization :!:
**************************************************************
User avatar
stfn116
Posts: 306
Joined: Wed 9. Jan 2019, 11:43
Location: Bavaria

Re: Universelle Benutzer für Datenbanken ?

Post by stfn116 »

OlliTheDarkness wrote: Tue 2. Jul 2019, 11:57 << Spielverderber 8-)

Dagegen aus jedem nur erdenklichem Sicherheitsaspekt.

-1
sonst können wir auch wieder Admin/Admin machen oder Password. Die Datenbanken bzw. die Server stehen ONLINE, es ist kein Wifi-Router welcher (einigermaßen) lokal im Zugriff ist. von daher von mir auch ein MINUS 1
:D Wer meint, Kompetenz sei teuer, möge es einmal mit Inkompetenz versuchen. Zitat: Bernd W. Klöckner. :lol:
User avatar
Tobi
Community Moderator
Posts: 2812
Joined: Thu 5. Jan 2017, 13:24

Re: Universelle Benutzer für Datenbanken ?

Post by Tobi »

christian.john wrote: Mon 1. Jul 2019, 14:26 Hallo,

ich schließe mich Micha an. Es wäre super, wenn man pro Benutzer einen Benutzer-Super-DB-User anlegen könnte, der auf alle Datenbanken des Benutzers Zugriff hat.

+1

Christian
Micha hat doch ausführlich beschrieben wie es geht.
Warum machst du es nicht einfach so?
Gruß,
Tobi


-----------------------------
wewoco.de
Das Forum für Reseller, Digital-Agenturen, Bildschirmarbeiter und Mäuseschubser
User avatar
OlliTheDarkness
Posts: 1854
Joined: Tue 14. Aug 2018, 16:41
Location: Essen (NRW)

Re: Universelle Benutzer für Datenbanken ?

Post by OlliTheDarkness »

stfn116 wrote: Tue 2. Jul 2019, 12:00
OlliTheDarkness wrote: Tue 2. Jul 2019, 11:57 << Spielverderber 8-)

Dagegen aus jedem nur erdenklichem Sicherheitsaspekt.

-1
sonst können wir auch wieder Admin/Admin machen oder Password. Die Datenbanken bzw. die Server stehen ONLINE, es ist kein Wifi-Router welcher (einigermaßen) lokal im Zugriff ist. von daher von mir auch ein MINUS 1
Wie ?
Du hast es gewagt Benutzername und Kennwort von Admin / Admin zu ändern ?
Spassbremse ey :lol:
Zum Thema Router sag ich jetzt mal nichts **hust**

Aber mal im ernst, gut das ich nicht allein es so sehe :)
Mit freundlichen Grüßen
OlliTheDarkness

**************************************************************
Helden leben lange, Legenden sterben nie

:!: World Hack Organization :!:
**************************************************************
User avatar
mrbird
Posts: 149
Joined: Sat 12. Mar 2016, 18:29
Location: Thüringer im Saarland ;-)

Re: Universelle Benutzer für Datenbanken ?

Post by mrbird »

ich misch mich zwar sonst soweit es geht nicht in feature requests usw ein. weil bisher komme ich mit dem bereits gelieferten gut zurecht. von daher und weil ich die ablehnende haltungen teile würde ich auch ein minus geben.

zum eigentlichen post. es gibt ja noch die möglichkeit der prefixe. wenn's damit nicht komplett unübersichtlich wird isses dann alles in einer db.
was mir allerdings bei dem bsp code auch auffiel .. ich würde die sachen erstmal für php 7 fit mache. dh mysql_query auf mysqli usw.
Locked