# MariaDB GRANT ALL PRIVILEGES: So vergeben Sie Rechte

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](https://www.ionos.at/digitalguide/server/knowhow/was-ist-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.

## Syntax des MariaDB GRANT ALL PRIVILEGES-Befehls

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

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

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:

```sql
FLUSH PRIVILEGES;
```

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:

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

Mit dem Befehl [MariaDB CREATE USER](https://www.ionos.at/digitalguide/hosting/hosting-technik/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.

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

### 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.

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

### 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:

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

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:

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

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:

```sql
FLUSH PRIVILEGES;
```

### Schritt 6: Vergebene Rechte anzeigen

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

```sql
SHOW GRANTS FOR 'newuser'@localhost;
```

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`).


This is a markdown version of: [https://www.ionos.at/digitalguide/hosting/hosting-technik/mariadb-grant-all-privileges/](https://www.ionos.at/digitalguide/hosting/hosting-technik/mariadb-grant-all-privileges/) for AI/LLM consumption.