So erstellen Sie MariaDB-Benutzer- und Gewähren-Berechtigungen
Eine der häufigsten Aufgaben beim Verwalten einer Datenbank besteht darin, den Zugriff und Berechtigungen zu erteilen. MariaDB ist ein Open-Source-, vollständig kompatibles, relationales Datenbankmanagementsystem (RDBMS). Der MariaDB-Client erleichtert das Hinzufügen neuer Benutzer und das Gewähren unterschiedlicher Berechtigungen.
In diesem einfachen Tutorial erfahren Sie, wie Sie einen MariaDB-Benutzer erstellen und dem neu erstellten Benutzer Berechtigungen erteilen.
Voraussetzungen
- Zugriff auf Befehlszeile/Terminalfenster
- Ein Benutzerkonto mit sudo-Berechtigungen
- Eine funktionierende Instanz von MariaDB
Zugriff Auf MariaDB Server
Geben Sie den folgenden Befehl in Ihrem Befehlszeilenterminal ein, um auf die MariaDB-Client-Shell zuzugreifen:
sudo mysql -u root
Wenn Ihr root User über ein vordefiniertes Kennwort verfügt, ändern Sie den Befehl, um diese Tatsache widerzuspiegeln:
sudo mysql -u root
Geben Sie Ihr Kennwort ein und greifen Sie auf den MariaDB-Client zu.
Wenn Sie noch keine Datenbanken erstellt haben, können Sie dies ganz einfach tun, indem Sie den folgenden Befehl in Ihre MariaDB-Client-Shell eingeben:
CREATE DATABASE 'kettle';
Greifen Sie auf eine Liste vorhandener Datenbanken zu, indem Sie diesen Befehl eingeben:
SHOW DATABASES;
Die Datenbank, die wir gerade erstellt haben, befindet sich in der Liste.
Erstellen neuer MariaDB-Benutzer
Um einen neuen MariaDB-Benutzer zu erstellen, geben Sie den folgenden Befehl ein:
CREATE USER 'user1'@localhost IDENTIFIED BY 'password1';
FLUSH PRIVILEGES;
In diesem Fall verwenden wir den Hostnamen 'localhost' und nicht die IP des Servers. Diese Vorgehensweise ist üblich, wenn Sie sich über SSH in Ihren Server einloggen oder wenn Sie den lokalen Client zum Herstellen einer Verbindung mit einem lokalen MySQL-Server verwenden.
Hinweis: Ersetzen Sie Benutzer1 und Kennwort1 durch die Anmeldeinformationen für den Benutzer, den Sie erstellen.
Nachdem Sie user1erstellt haben, überprüfen Sie dessen Status, indem Sie:
SELECT User FROM mysql.user;
Die Ausgabe listet alle vorhandenen Benutzer auf.
Gewähren von Berechtigungen für MariaDB
Der neu erstellte Benutzer verfügt nicht über Berechtigungen zum Verwalten von Datenbanken oder zum Zugriff auf die MariaDB-Shell.
So erteilen Sie Benutzer1alleBerechtigungen:
GRANT ALL PRIVILEGES ON *.* TO 'user1'@localhost IDENTIFIED BY 'password1';
FLUSH PRIVILEGES;
Die *.* in der Anweisung bezieht sich auf die Datenbank oder Tabelle, für die dem Benutzer Berechtigungen gewährt werden. Dieser spezifische Befehl ermöglicht den Zugriff auf alle Datenbanken auf dem Server. Da dies ein großes Sicherheitsproblem sein kann, sollten Sie das Symbol durch den Namen der Datenbank ersetzen, auf die Sie Zugriff gewähren.
Um Berechtigungen nur für Ihre DB zu gewähren, geben Sie die folgende Anweisung ein:
GRANT ALL PRIVILEGES ON 'yourDB'.* TO 'user1'@localhost;
FLUSH PRIVILEGES;
Es ist wichtig, die Privilegien zu aktualisieren, sobald neue mit dem Befehl erteilt wurden:
FLUSH PRIVILEGES;
Der von Ihnen erstellte Benutzer verfügt nun über vollständige Berechtigungen und Zugriff auf die angegebene Datenbank und Tabellen.
Nachdem Sie diesen Schritt abgeschlossen haben, können Sie überprüfen, ob der neue Benutzer1 über die richtigen Berechtigungen verfügt, indem Sie die folgende Anweisung verwenden:
SHOW GRANTS FOR 'user1'@localhost;
Die vom System bereitgestellten Informationen werden auf dem Terminal angezeigt.
Entfernen eines MariaDB User Accounts
Wenn Sie einen User entfernen müssen, können Sie die DROP-Anweisung verwenden:
DROP USER 'user1'@localhost;
Die Ausgabe bestätigt, dass Benutzer1 keinen Zugriff und keine Berechtigungen mehr hat.
Schlussfolgerung
Sie haben erfolgreich einen MariaDB-Benutzer erstellt und vollständige Benutzerberechtigungen gewährt. Diese grundlegende Aufgabe sollte schnell zur Routine werden. Es gibt zahlreiche Optionen, um Berechtigungen anzupassen und an Ihre Anforderungen anzupassen.
Wir empfehlen Ihnen, die vielen verfügbaren Optionen zu erkunden, mit denen Sie Ihre Datenbanken sicher und effektiv verwalten können.
Einige Beispiel Befehle:
User erstellen:
CREATE USER 'sdohn'@192.168.17.247 IDENTIFIED BY 'secretpw'; flush privileges; |
Grants erteilen:
GRANT ALL PRIVILEGES ON *.* TO 'sdohn'@192.168.17.247 IDENTIFIED BY 'secretpw'; oder besser sind separate Berechtigungen: GRANT CREATE, SELECT ON owncloud.* TO 'oc_sdohn'@'%';
flush privileges; SHOW GRANTS for oc_sdohn; |
Ein entferntes Login erlauben
Entweder die IP des Hosts eintragen, oder % passt auf jeden Host
update user set Host='%' where user ='sdohn'; flush privileges; |
Das Passwort einmal neu setzen
update user SET PASSWORD=PASSWORD("secretpw") WHERE USER='sdohn'; flush privileges;
Privilegien auch wieder entfernen nachdem man Sie gebraucht hat: REVOKE CREATE ON owncloud.* FROM 'oc_sdohn'@'%'; flush privileges; |
Ein komplettes Beispiel mit Grants:
— Benutze die mysql DB.
USE mysql;
— Neue Benutzer anlegen:
CREATE USER 'sdohn'@'192.168.0.110' IDENTIFIED BY 'geheimespassword';
CREATE USER 'sdohn'@'sdohn.com' IDENTIFIED BY 'geheimespassword';
— Grant privileges for database icinga to new users.
GRANT USAGE ON *.* TO 'sdohn'@'192.168.19.10' IDENTIFIED BY 'geheimespassword';
GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE VIEW, INDEX, EXECUTE ON 'mydatabase'.* TO 'sdohn'@'192.168.19.10';
GRANT USAGE ON *.* TO 'sdohn'@'sdohn.com' IDENTIFIED BY 'geheimespassword';
GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE VIEW, INDEX, EXECUTE ON 'mydatabase'.* TO 'sdohn'@'sdohn.com';
— Stellen Sie sicher, dass die Berechtigungen neu geladen werden.
FLUSH PRIVILEGES;