Der Befehl GRANT ALL PRIVILEGES in MariaDB vergibt sämtliche Benutzerrechte auf eine Datenbank. So können Nutzerinnen und Nutzer ohne Einschränkungen Tabellen erstellen, ändern und löschen.

Was ist MariaDB GRANT ALL PRIVILEGES?

Der Befehl GRANT ALL PRIVILEGES in MariaDB stattet eine Benutzerin oder einen Benutzer mit umfassenden Zugriffsrechten auf eine oder mehrere Datenbanken aus. Er räumt alle verfügbaren Berechtigungen ein, darunter das Anlegen, Verändern und Löschen von Tabellen sowie den Zugriff auf administrative Funktionen. Mit dem gezielten Einsatz von GRANT ALL PRIVILEGES steuern Sie die Zugriffsrechte innerhalb Ihrer Datenbankumgebung.

Um GRANT ALL PRIVILEGES in MariaDB anwenden zu können, benötigen Sie erweiterte Systemrechte. Dazu gehören in der Regel das SUPER-Privileg oder die Berechtigung zur Vergabe von Rechten (GRANT OPTION). Melden Sie sich mit einem administrativen Benutzerkonto an und stellen Sie sicher, dass eine stabile Verbindung zur richtigen Datenbankinstanz besteht. Achten Sie darauf, Benutzername und Hostpräfix genau zu definieren, um unbeabsichtigte Rechtezuweisungen zu vermeiden. Auch sollten Sie prüfen, ob die Zieldatenbank bereits existiert, da sich der Befehl nur auf vorhandene Datenbanken beziehen kann.

Compute Engine
Die ideale IaaS für Ihre Workloads
  • Kostengünstige vCPUs und leistungsstarke dedizierte Cores
  • Höchste Flexibilität ohne Mindestvertragslaufzeit
  • Inklusive 24/7 Experten-Support

Syntax des MariaDB GRANT ALL PRIVILEGES-Befehls

Die Grundstruktur, um alle Rechte auf eine Datenbank zu vergeben, sieht in MariaDB folgendermaßen aus:

GRANT ALL PRIVILEGES ON database.* TO 'username'@'host';
sql

Der Ausdruck GRANT ALL PRIVILEGES in MariaDB erteilt der angegebenen Benutzerin oder dem Benutzer vollständige Berechtigungen auf die ausgewählte Datenbank. Durch die Angabe von 'username'@host bestimmen Sie, welchem User und von welchem Host der Zugriff erlaubt ist. Optional können Sie gleichzeitig ein Passwort setzen, um die Benutzerin oder den Benutzer zu authentifizieren.

Nachdem Sie den Befehl ausgeführt haben, zeigen die Änderungen erst Wirkung, wenn Sie die Berechtigungen neu laden:

FLUSH PRIVILEGES;
sql

Dies sorgt dafür, dass die vergebenen Rechte sofort aktiv sind und korrekt im System gespeichert werden.

Schritt-für-Schritt-Anleitung: Benutzer anlegen und mit Rechten ausstatten

Wenn Sie ein neues Benutzerkonto in MariaDB anlegen und diesem Konto umfassende Rechte erteilen möchten, gehen Sie wie folgt vor:

Schritt 1: Benutzer erstellen

Zunächst legen Sie einen neuen User mit einem sicheren Passwort an. Verwenden Sie dafür den Befehl:

CREATE USER 'newuser'@localhost IDENTIFIED BY 'strongpassword';
sql

Mit dem Befehl MariaDB CREATE USER erstellen Sie einen neuen User und weisen diesem ein Passwort zu. Ersetzen Sie newuser durch den gewünschten Benutzernamen und strongpassword durch ein individuelles, sicheres Passwort. Die Angabe localhost beschränkt den Zugriff auf Verbindungen vom lokalen Server. Möchten Sie den Zugriff von einem anderen Host erlauben, ersetzen Sie localhost durch die IP-Adresse oder den Hostnamen des gewünschten Servers.

Schritt 2: Alle Rechte auf eine Datenbank vergeben

MariaDB GRANT ALL PRIVILEGES verleiht Benutzerinnen und Benutzern sämtliche verfügbaren Privilegien auf alle Tabellen der Datenbank database_name. Der Platzhalter * steht dabei für jede Tabelle innerhalb der angegebenen Datenbank.

GRANT ALL PRIVILEGES ON database_name.* TO 'newuser'@localhost;
sql

Schritt 3: Rechteweitergabe erlauben (GRANT OPTION)

Durch die Ergänzung WITH GRANT OPTION erhält der User das Recht, die erhaltenen Privilegien selbst an andere Benutzerinnen und Benutzer weiterzugeben.

GRANT ALL PRIVILEGES ON database_name.* TO 'newuser'@localhost WITH GRANT OPTION;
sql

Schritt 4: Einzelne Rechte auf eine Datenbank oder eine Tabelle vergeben

Sie können auch gezielt bestimmte Berechtigungen auf eine komplette Datenbank oder auf einzelne Tabellen vergeben. Um beispielsweise nur Lesezugriff auf alle Tabellen einer Datenbank zu erlauben, nutzen Sie:

GRANT SELECT ON database_name.* TO 'newuser'@localhost;
sql

In diesem Beispiel erhält 'newuser' das Recht, alle Daten in der Datenbank database_name zu lesen, jedoch keine Änderungen vorzunehmen. Durch die Verwendung von * nach dem Datenbanknamen beziehen sich die Rechte auf alle Tabellen dieser Datenbank.

Möchten Sie hingegen Rechte nur auf eine spezielle Tabelle vergeben, passen Sie die Syntax folgendermaßen an:

GRANT SELECT ON database_name.table_name TO 'newuser'@localhost;
sql

Dadurch kann 'newuser' Daten aus der Tabelle table_name innerhalb der Datenbank database_name lesen. So kontrollieren Sie sehr genau, welche Aktionen die Benutzerin oder der Benutzer ausführen darf.

Schritt 5: Änderungen anwenden

Die Rechte sollten automatisch aktualisiert werden und ab sofort gelten. Alternativ können Sie abschließend den nachfolgenden Befehl ausführen, damit alle vergebenen Rechte wirksam werden:

FLUSH PRIVILEGES;
sql

Schritt 6: Vergebene Rechte anzeigen

Um alle aktuell vergebenen Rechte eines Benutzerkontos zu überprüfen, geben Sie folgenden Befehl ein:

SHOW GRANTS FOR 'newuser'@localhost;
sql

Dieser Befehl listet alle Berechtigungen auf, die newuser für die MariaDB-Instanz besitzt. Sie sehen dabei nicht nur allgemeine Rechte auf Datenbanken oder Tabellen, sondern auch spezielle Privilegien wie das Recht, eigene Berechtigungen weiterzugeben (WITH GRANT OPTION).

Managed Database Services
Datenbanken – Auf´s Wesentliche konzentrieren
  • IONOS Cloud-Partner: Die Experten für Ihren Datenbank-Betrieb
  • Flexibel: Maßgeschneiderte Datenbank-Lösungen ganz auf Ihre Bedürfnisse
  • Rechenzentren in Deutschland: Ihre Daten sind sicher
War dieser Artikel hilfreich?
Zum Hauptmenü