Die Anweisung GRANT in MySQL wird verwendet, um den MySQL-Benutzerkonten Berechtigungen zuzuweisen. Sie legt fest, welche Operationen Benutzer mit Datenbankobjekten wie Tabellen und Ansichten durchführen können, und gewährleistet so einen kontrollierten Zugriff auf die Datenbank.
Verwendung
Die Anweisung GRANT wird verwendet, wenn du bestimmten Benutzern die Berechtigung geben musst, bestimmte Arten von SQL-Operationen auszuführen. Es hilft dabei, Benutzerrechte effizient und sicher zu verwalten.
GRANT privileges
ON database_name.table_name
TO'user'@'host'[IDENTIFIEDBY'password'];Bereitgestellt von
In dieser Syntax sind privileges die gewährten Berechtigungen, database_name.table_name gibt den Bereich an, user ist der MySQL-Benutzername und host ist der Ort, von dem aus sich der Benutzer verbindet. Beachte, dass die IDENTIFIED BY 'password' Klausel nur bei der Erstellung eines neuen Benutzers anwendbar ist. In MySQL 8.0 und höher wird normalerweise empfohlen, CREATE USER gefolgt von GRANT für die Erstellung von Benutzern und die Zuweisung von Berechtigungen zu verwenden.
Beispiele
1. Gewährung grundlegender Privilegien
GRANTSELECT,INSERTON mydb.mytable
TO'user1'@'localhost';Bereitgestellt von
Dieses Beispiel gewährt die Rechte SELECT und INSERT auf mydb.mytable für user1, das sich von localhost aus verbindet.
2. Alle Berechtigungen für eine Datenbank gewähren
Hier erhält user2 alle Rechte für die gesamte Datenbank mydb vom Host 192.168.1.1.
3. Privilegien mit Passwort erteilen
GRANTSELECT,UPDATEON mydb.mytable
TO'user3'@'%'IDENTIFIEDBY'securepassword';Bereitgestellt von
Diese Anweisung gewährt SELECT und UPDATE Privilegien auf mydb.mytable bis user3 von einem beliebigen Host (%) aus, wobei ein bestimmtes Passwort festgelegt wird. Die Verwendung von % ermöglicht Verbindungen von jedem Host aus, was Auswirkungen auf die Sicherheit haben kann.
Zusätzliche Informationen
Globale Privilegien
Um globale Berechtigungen zu gewähren, die für alle Datenbanken gelten, verwendest du die ON *.* Syntax. Dies gewährt die angegebenen Privilegien global.
Entzug von Privilegien
Um Privilegien zu entziehen, verwendest du die Anweisung REVOKE:
REVOKE privileges
ON database_name.table_name
FROM'user'@'host';Bereitgestellt von
Damit werden dem Benutzer die angegebenen Berechtigungen entzogen.
Tipps und bewährte Praktiken
Privilegien einschränken. Gewähre den Nutzern nur die notwendigen Berechtigungen, um Sicherheitsrisiken zu minimieren.
Verwende bestimmte Hostnamen. Wenn möglich, gib Hostnamen oder IP-Adressen an, um den Zugang zu beschränken, anstatt % für alle Hosts zu verwenden.
Verwalte deine Passwörter sicher. Verwende beim Einrichten von Benutzerkonten immer sichere, eindeutige Passwörter.
Überprüfe regelmäßig die Berechtigungen. Überprüfe regelmäßig und entziehe unnötige Privilegien, um optimale Sicherheit zu gewährleisten. Verwende die Tabelle mysql.user oder die entsprechenden Ansichten des Informationsschemas, um die bestehenden Benutzerrechte zu überprüfen.
Dokumentänderungen. Führe Aufzeichnungen über alle GRANT ausgestellten Bescheinigungen, damit du die Genehmigungen leicht nachverfolgen kannst.
Die Anweisung
GRANTin MySQL wird verwendet, um den MySQL-Benutzerkonten Berechtigungen zuzuweisen. Sie legt fest, welche Operationen Benutzer mit Datenbankobjekten wie Tabellen und Ansichten durchführen können, und gewährleistet so einen kontrollierten Zugriff auf die Datenbank.Verwendung
Die Anweisung
GRANTwird verwendet, wenn du bestimmten Benutzern die Berechtigung geben musst, bestimmte Arten von SQL-Operationen auszuführen. Es hilft dabei, Benutzerrechte effizient und sicher zu verwalten.In dieser Syntax sind
privilegesdie gewährten Berechtigungen,database_name.table_namegibt den Bereich an,userist der MySQL-Benutzername undhostist der Ort, von dem aus sich der Benutzer verbindet. Beachte, dass dieIDENTIFIED BY 'password'Klausel nur bei der Erstellung eines neuen Benutzers anwendbar ist. In MySQL 8.0 und höher wird normalerweise empfohlen,CREATE USERgefolgt vonGRANTfür die Erstellung von Benutzern und die Zuweisung von Berechtigungen zu verwenden.Beispiele
1. Gewährung grundlegender Privilegien
Dieses Beispiel gewährt die Rechte
SELECTundINSERTaufmydb.mytablefüruser1, das sich vonlocalhostaus verbindet.2. Alle Berechtigungen für eine Datenbank gewähren
Hier erhält
user2alle Rechte für die gesamte Datenbankmydbvom Host192.168.1.1.3. Privilegien mit Passwort erteilen
Diese Anweisung gewährt
SELECTundUPDATEPrivilegien aufmydb.mytablebisuser3von einem beliebigen Host (%) aus, wobei ein bestimmtes Passwort festgelegt wird. Die Verwendung von%ermöglicht Verbindungen von jedem Host aus, was Auswirkungen auf die Sicherheit haben kann.Zusätzliche Informationen
Globale Privilegien
Um globale Berechtigungen zu gewähren, die für alle Datenbanken gelten, verwendest du die
ON *.*Syntax. Dies gewährt die angegebenen Privilegien global.Entzug von Privilegien
Um Privilegien zu entziehen, verwendest du die Anweisung
REVOKE:Damit werden dem Benutzer die angegebenen Berechtigungen entzogen.
Tipps und bewährte Praktiken
%für alle Hosts zu verwenden.mysql.useroder die entsprechenden Ansichten des Informationsschemas, um die bestehenden Benutzerrechte zu überprüfen.GRANTausgestellten Bescheinigungen, damit du die Genehmigungen leicht nachverfolgen kannst.