Tutorial

Erstellen eines neuen Benutzers und Erteilen von Berechtigungen in MySQL

Published on January 5, 2021
Deutsch
Erstellen eines neuen Benutzers und Erteilen von Berechtigungen in MySQL

Einführung

MySQL ist eine Open-Source Datenbankverwaltungssoftware, die Benutzern beim Speichern, Organisieren und späterem Abrufen von Daten hilft. Sie verfügt über eine Vielzahl von Optionen, um bestimmten Benutzern nuancierte Berechtigungen innerhalb der Tabellen und Datenbanken zu erteilen – dieses Tutorial gibt einen kurzen Überblick über einige der vielen Optionen.

Was die Hervorhebungen bedeuten

In diesem Tutorial sind alle von dem Benutzer einzugebenden oder anzupassenden Zeilen hervorgehoben! Der Rest sollte größtenteils kopiert und eingefügt werden können.

Erstellen eines neuen Benutzers

In Teil 1 des MySQL Tutorials haben wir alle Bearbeitung in MySQL als root user vorgenommen, der vollen Zugriff auf alle Datenbanken hat. In Fällen, in denen möglicherweise mehr Einschränkungen erforderlich sind, gibt es Möglichkeiten, Benutzer mit benutzerdefinierten Berechtigungen zu erstellen.

Beginnen wir mit dem Erstellen eines neuen Benutzers innerhalb der MySQL-Shell:

  1. CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

Anmerkung: Wenn wir in diesem Tutorial Benutzer innerhalb der MySQL-Shell hinzufügen, geben wir den Host des Benutzers als localhost und nicht die IP-Adresse des Servers an. localhost ist ein Hostname, der „diesen Computer“ bezeichnet und MySQL behandelt diesen speziellen Hostnamen besonders: Wenn sich ein Benutzer mit diesem Host bei MySQL anmeldet, versucht er, über eine Unix-Socket-Datei eine Verbindung mit dem lokalen Server herzustellen. Daher wird localhost typischerweise verwendet, wenn Sie eine Verbindung per SSH zu Ihrem Server herstellen wollen oder wenn Sie den lokalen mysql-Client ausführen, um eine Verbindung zum lokalen MySQL-Server herzustellen.

Zu diesem Zeitpunkt hat newuser keine Berechtigungen, mit den Datenbanken etwas zu tun. Tatsächlich ist es so, dass, selbst wenn newuser versucht, sich anzumelden (mit dem Passwort, password), er nicht in der Lage ist, die MySQL-Shell zu erreichen.

Daher besteht der erste Schritt darin, dem Benutzer Zugriff auf die benötigten Informationen zu verschaffen.

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

Die Sternchen in diesem Befehl beziehen sich auf die Datenbank bzw. Tabelle, auf die sie zugreifen können – dieser spezifische Befehl ermöglicht dem Benutzer, alle Aufgaben in allen Datenbanken und Tabellen zu lesen, zu bearbeiten, auszuführen und durchzuführen.

Bitte beachten Sie, dass wir in diesem Beispiel newuser vollen Root-Zugriff auf alles in unserer Datenbank gewähren. Dies ist zwar hilfreich für das Erklären einiger MySQL-Konzepte, ist aber für die meisten Anwendungsfälle unpraktisch, und könnte die Sicherheit Ihrer Datenbank stark gefährden.

Sobald Sie die Berechtigungen, die Sie für Ihre neuen Benutzer einrichten möchten, endgültig festgelegt haben, sollten Sie immer sicherstellen, dass Sie alle Berechtigungen neu laden.

  1. FLUSH PRIVILEGES;

Ihre Änderungen werden nun wirksam.

Gewähren verschiedener Benutzerberechtigungen

Nachstehend finden Sie eine Liste anderer gängiger möglicher Berechtigungen, die Benutzer haben können.

  • ALL PRIVILEGES- wie wir bereits gesehen haben, würde dies einem MySQL-Benutzer vollen Zugriff auf eine bestimmte Datenbank (oder, wenn keine Datenbank ausgewählt ist, den globalen Zugriff auf das gesamte System) erlauben.
  • CREATE- ermöglicht ihnen, neue Tabellen oder Datenbanken zu erstellen
  • DROP- ermöglicht ihnen, Tabellen oder Datenbanken zu löschen
  • DELETE- ermöglicht ihnen das Löschen von Zeilen aus Tabellen
  • INSERT- ermöglicht ihnen das Einfügen von Zeilen in Tabellen
  • SELECT- ermöglicht ihnen die Verwendung des Befehls SELECT zum Lesen von Datenbanken
  • UPDATE- ermöglicht ihnen das Aktualisieren von Tabellenzeilen
  • GRANT OPTION- ermöglicht ihnen, anderen Benutzern Berechtigungen zu erteilen oder zu entziehen

Um einem bestimmten Benutzer eine Berechtigung zu erteilen, können Sie dieses Framework verwenden:

  1. GRANT type_of_permission ON database_name.table_name TO 'username'@'localhost';

Wenn Sie ihnen Zugriff auf eine Datenbank oder eine Tabelle gewähren möchten, stellen Sie sicher, dass Sie ein Sternchen (*) an die Stelle des Datenbanks- oder Tabellennamens setzen.

Stellen Sie bei jedem Aktualisieren oder Ändern einer Berechtigung sicher, dass Sie den Befehl „Flush Privileges“ verwenden.

Wenn Sie eine Berechtigung entziehen müssen, ist die Struktur fast identisch mit dem Erteilen einer Berechtigung:

  1. REVOKE type_of_permission ON database_name.table_name FROM 'username'@'localhost';

Beachten Sie, dass die Syntax beim Entziehen von Berechtigungen verlangt, dass Sie FROM verwenden anstelle von TO, wie wir es bei der Erteilung von Berechtigungen verwendet haben.

Sie können die aktuellen Berechtigungen eines Benutzers überprüfen, indem Sie Folgendes ausführen:

  1. SHOW GRANTS FOR 'username'@'localhost';

Genauso wie Sie Datenbanken mit DROP löschen können, können Sie DROP verwenden, um einen Benutzer vollständig zu löschen:

  1. DROP USER 'username'@'localhost';

Um Ihren neuen Benutzer zu testen, melden Sie sich ab, indem Sie Folgendes eingeben:

  1. quit

Und melden Sie sich mit diesem Befehl wieder am Terminal an:

  1. mysql -u [username] -p

Zusammenfassung

Nach dem Abschluss dieses Tutorials sollten Sie ein Grundverständnis dafür haben, wie Sie neue Benutzer hinzufügen und ihnen eine Reihe von Berechtigungen in einer MySQL-Datenbank erteilen. Von hier aus können Sie weiter erkunden und mit verschiedenen Berechtigungseinstellungen für Ihre Datenbank experimentieren Sie möchten möglicherweise mehr über einige MySQL-Konfigurationen auf höherer Ebene erfahren.

Für weitere Informationen über die Grundlagen von MySQL empfehlen wir Ihnen, sich die folgenden Tutorials anzusehen:

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Learn more about us


About the authors

Still looking for an answer?

Ask a questionSearch for more help

Was this helpful?
 
Leave a comment


This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Join the Tech Talk
Success! Thank you! Please check your email for further details.

Please complete your information!

Get our biweekly newsletter

Sign up for Infrastructure as a Newsletter.

Hollie's Hub for Good

Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.

Become a contributor

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

Welcome to the developer cloud

DigitalOcean makes it simple to launch in the cloud and scale up as you grow — whether you're running one virtual machine or ten thousand.

Learn more
DigitalOcean Cloud Control Panel