Mysql beschränkten User erstellen


#1

Hallo miteinander,
ich vermute es funktioniert nicht, aber ich würde gerne einen Mysql User erstellen.
Da ich ja nicht der root bin geht es scheinbar nicht auf einfachem Wege, via phpMyAdmin.
Ich halte das Thema doch für ausreichend wichtig und will mal kurz bei ein paar fachkundigeren Menschen nachfragen.

Wenn man sich durch Sicherheitsthemen liesst steht dort immer ganz dick:
Mysql Anmeldungen bitte nicht mit einem Superuser.
Und so wie ich das hier bisher verstehe bin ich mit dem Usernamen der beim Erstellen meiner Datenbank erstellt wird automatisch ein Superuser.
Wie kann ich nun einen oder mehrere Zugänge mit minimierten Rechten anlegen?

beste Grüße
J


#2

Du bist kein Superuser.


#3

hi

Du kannst Datenbanken - zusammen mit einem berechtigten Benutzer - unter den Datenbankeinstellungen im Benutzermenü hier: bplaced.net/?handler=mysql …erstellen :slight_smile:

ciao


#4

Hallo danke für die Antwort bis hierhin.
Dann bin ich also ‘nur’ ein berechtigter User, statt Superuser.
Leider wird das Problem wird dadurch nicht gelöst.

Die Betonung liegt auf einem oder ?

Schauen wir mal den nachfolgenden …vorgestellt, illegal eingeschleusten Code ein der zu dieser Meldung führt -erfolgreich getestet Test: Database dropped successfully

[code]<?php
$servername = ‘SERVERNAME’;
$username =‘BENUTZERNAME’;
$password =‘EXTREMGUTESPASSWORT12345’;
$database = ‘DATENBANKNAME’;
$datablink = mysqli_connect($servername, $username, $password, $database);
// Check connection
if (!$datablink) {
die("Connection failed: " . mysqli_connect_error());
}

// Drop Table
$sql = “DROP TABLE Delete_per_Mysql_Test;”;
if (mysqli_query($datablink, $sql)) {
echo “Database dropped successfully”;
} else {
echo "got Error with dropping the database: " . mysqli_error($datablink);
}

mysqli_close($datablink);
?>[/code]

Gibt es (k)eine Möglichkeit, wie ich einen User erstellen kann, der so wenige Berechtigungen hat, dass er keine Tabellen löschen kann und keine erstellen kann?
Vielleicht wäre auch eine Trennung zwischen (zu Erstellendem) Schreibrechte-User und Lese-Rechte-User noch sinnvoll.
Sicherheit kann man doch nie genug haben.
Ich beziehe mich u.A. auch auf Schutzmaßnahme 2 hiervon: http://www.pc-erfahrung.de/sonstiges/webdesignwebentwicklung/mysql-injection-und-datenmanipulation-verhindern.html

Danke und Gruß
j


#5

hallo

also diese Maßnahmen kannst Du hier eigentlich getrost ignorieren.

Erstmal löscht Du mit dem Befehl da nicht die Datenbank, sondern die Tabellen. Und nein, ein explizites Setzen der Rechte ist so nicht möglich (das können lediglich Geschäftskunden); allerdings meine ich auch, dass das so nicht erforderlich ist.

Sichere Programmierung verhindert dies erstmal weitgehendst …und für Katastrophenfälle haben wir notfalls Backups, die man im Totalschadensfall via Support erfragen kann.

ciao


#6

Ist es selbst nur bei kleineren mySQL - Abfragen nicht möglich einen User-Login mit Einschränkungen anzulegen? Muss da immer der sogenannte “Admin-Account” herhalten? Mir ist bekannt, dass man in die PHP-Skripte nicht einsehen kann (sichere Programmierung), aber es wäre äußerst hilfreich beim Testen der Skripte nicht ausversehen die Tabelle gelöscht wird oder durch hacking.

LG
Micha


#7

hallo,

wenn sich jemand in deine Datenbank hackt oder deine Scripte kompromittiert werden, hilft dir auch ein User-Login mit eingeschränkten Funktionen nicht viel. Es gibt hier in dem Sinne keinen Admin-Account für die Datenbanken, jede Datenbank hat jeweils einen Datenbankbenutzer zugewiesen mit den entsprechenden Rechten. Weitere Datenbankbenutzer mit eingeschränkten Rechten können nicht hinzugefügt werden.

Du hast bei uns aber ja mehr als eine Datenbank zur Verfügung; wenn du Scripte testen willst, kannst du auch einfach eine zweite Datenbank anlegen und die Daten spiegeln. So bleibt die erste Datenbank unberührt und wenn beim Testing etwas schief geht, kannst du die Datenbank problemlos wieder löschen. :slightly_smiling_face: