Informationen zu MySQL-Nutzern

Auf dieser Seite wird beschrieben, wie die Arbeit in Cloud SQL mit MySQL-Nutzern funktioniert. MySQL-Nutzerkonten bieten Sicherheit, indem sie den Zugriff auf MySQL-Datenbanken kontrollieren.

Eine vollständige Dokumentation zu Nutzern in MySQL finden Sie in der MySQL-Dokumentation unter Zugriffssteuerung und Kontoverwaltung. Weitere Informationen zum Erstellen und Verwalten von Cloud SQL-Nutzern in Cloud SQL finden Sie unter Nutzer erstellen und verwalten.

Vorteile von MySQL-Nutzerkonten

Mithilfe von MySQL-Nutzerkonten können Sie sich an Ihrer Cloud SQL-Instanz anmelden und diese verwalten. Nutzerkonten werden auch benötigt, damit Anwendungen auf Ihre Instanz zugreifen können.

Superuser-Einschränkungen

In Cloud SQL können Kunden keine Nutzer mit Superuser-Attributen erstellen oder darauf zugreifen.

Da Cloud SQL for MySQL ein verwalteter Dienst ist, wird der Zugriff auf bestimmte Systemprozeduren und -tabellen eingeschränkt.

Die Berechtigungen für die Datenbearbeitungssprache (Data Manipulation Language, DML) und die Datendefinitionssprache (Data Definition Language, DDL) sind bei einigen Schematabellen eingeschränkt.

Hier finden Sie die Liste der MySQL 5.6-Systemtabellen im mysql-Schema, die Schreibberechtigungen erfordern: audit_log_rules_expanded, audit_log_supported_ops, audit_log_rules, cloudsql_replica_index, db, event, func, heartbeat, plugin, proc, user und tables_priv.

Für MySQL 5.7 ist dies die Liste: audit_log_rules_expanded, audit_log_supported_ops, audit_log_rules, cloudsql_replica_index, db, event, func, gtid_executed, heartbeat, plugin, proc, user und tables_priv.

Weitere Informationen zu MySQL 8.0 und MySQL 8.4 finden Sie unter MySQL 8.0-Nutzerberechtigungen (cloudsqlsuperuser) und MySQL 8.4-Nutzerberechtigungen (cloudsqlsuperuser).

MySQL-Nutzerkonto-Format

MySQL-Nutzerkonten bestehen aus zwei Komponenten: einem Nutzernamen und einem Hostnamen. Der Nutzername identifiziert den Nutzer, der Hostname gibt an, von welchen Hosts aus der Nutzer eine Verbindung herstellen darf. Die Kombination aus Nutzername und Hostname wird verwendet, um ein Nutzerkonto zu erstellen:

'<user_name>'@'<host_name>'

Sie können eine bestimmte IP-Adresse oder einen -Adressbereich für den Hostnamen angeben oder das Prozentzeichen (%) verwenden, um alle Hostnamen zuzulassen. Beachten Sie beim Herstellen einer Verbindung zu der Instanz mithilfe von IP-Adressen, dass Sie auch dann die IP-Adresse des Clients als Autorisierte Adresse hinzufügen müssen, wenn Sie für den Nutzer alle Hostnamen zulassen.

Nutzerkonten werden sowohl durch den Nutzernamen als auch den Hostnamen definiert. Beispiel: 'user'@'%' ist ein anderes Nutzerkonto als 'user'@'localhost'.

Standard-MySQL-Nutzer

MySQL-Instanzen haben bei der Erstellung ein Standardnutzerkonto: 'root'@'%'. Mit diesem Konto stellen Sie zum ersten Mal eine Verbindung zur Datenbankinstanz her und verwalten diese. Der Standardnutzer hat alle Datenbankberechtigungen mit Ausnahme von SUPER und FILE. In Cloud SQL können Sie 'root'@'%' nicht umbenennen.

Der Standardwert für root'@'% ist kein Passwort und MySQL erfordert nicht, dass Sie ein Passwort für root'@'% verwenden. Da root'@'% jedoch in den meisten MySQL-Installationen vorhanden ist, bietet das root'@'%-Nutzerkonto ein häufiges Ziel für unbefugten Zugriff. Jede Person oder jedes Programm, die bzw. das so Zugriff auf die Instanz erhält, kann fast unbegrenzt auf die Instanz und Ihre Daten zugreifen und diese steuern. Daher empfehlen wir Ihnen, Ihren root'@'%-Nutzer mit einem starken Passwort zu konfigurieren oder diesen Nutzer zu löschen. Hilfe zur Konfiguration des Standardnutzerkontos finden Sie unter Standardnutzerkonto konfigurieren.

Systemnutzer

Es gibt sieben Systemnutzer:

  • root@localhost, root@127.0.0.1, root@::1

    Wird zur Bereitstellung des verwalteten Datenbankdienstes verwendet.

  • cloudsqlreplica@%

    Wird als Replikationsnutzer für Replikate verwendet.

  • cloudsqlimport@localhost, cloudsqlimport@127.0.0.1

    Wird für Datenimporte verwendet.

  • cloudsqlexport@localhost, cloudsqlexport@127.0.0.1

    Wird für Datenexporte verwendet.

  • cloudsqloneshot

    Wird für andere Datenbankvorgänge verwendet.

  • cloudsqlapplier@localhost

    Wird für Replikationsvorgänge in externen Serverreplikaten oder für hauptversionsübergreifende Replikationen verwendet.

  • cloudsqlobservabilityadmin

    Wird für die Beobachtbarkeit von Datenbanken verwendet.

  • cloudiamgroup@'%'

    Wird für die IAM-Gruppenauthentifizierung verwendet.

Sie können diese Nutzer weder löschen noch ändern.

Andere MySQL-Nutzerkonten

Sie können auch andere MySQL-Nutzerkonten erstellen; das ist sinnvoll, weil dies die Verwendung von verschiedenen MySQL-Nutzer-Konten für verschiedene Zwecke ermöglicht.

Sie können ein Nutzerkonto mit einem eingeschränkten Hostnamen erstellen oder SQL-Befehle verwenden, um Berechtigungen für Ihre Nutzerkonten einzuschränken.

Weitere Informationen zu Nutzerkontennamen finden Sie in der MySQL-Dokumentation unter Kontonamen angeben. Informationen zum Erstellen eines neuen MySQL-Nutzers in Cloud SQL finden Sie unter Nutzer erstellen.

Nutzerberechtigungen für MySQL 5.6 und 5.7

MySQL bietet fein abgestufte Berechtigungen, die Sie Nutzern gewähren oder entziehen können. So können Sie festlegen, was ein Nutzer auf Ihrer Instanz tun darf.

Mit Cloud SQL erstellte Nutzer haben die gleichen Berechtigungen wie der MySQL-Standardnutzer. Sie können ihre Berechtigungen mit den Anweisungen GRANT oder REVOKE ändern.

Wenn Sie den mysql-Client verwenden, um einen Nutzer zu erstellen, müssen Sie ihm mit der Anweisung GRANT explizit Berechtigungen zuweisen.

Weitere Informationen zu den Rechten, die von MySQL unterstützt werden, finden Sie in MySQL – Unterstützte Rechte.

MySQL 8.0-Nutzerberechtigungen (cloudsqlsuperuser)

Wenn Sie in Cloud SQL for MySQL 8.0 einen neuen Nutzer erstellen, wird diesem automatisch die Rolle cloudsqlsuperuser zugewiesen. Die Rolle "cloudsqlsuperuser" ist eine Cloud SQL-Rolle, die eine Reihe von MySQL-Berechtigungen enthält. Diese Rolle gewährt dem Nutzer alle statischen Berechtigungen, außer SUPER und FILE.

Die Rolle cloudsqlsuperuser unterstützt nur die folgenden dynamischen Berechtigungen, die auf MySQL 8.0-Nebenversionen basieren:

MySQL 8.0.18

MySQL 8.0.26

MySQL 8.0.27

MySQL 8.0.28

MySQL 8.0.29 (verworfen)

MySQL 8.0.30 und höher

Die Rolle "cloudsqlsuperuser" unterstützt keine DDL-Vorgänge (Data Definition Language) für die mysql-Systemdatenbank.

Wenn Sie eine vollständige Liste der Berechtigungen sehen möchten, die der Rolle "cloudsqlsuperuser" zugewiesen sind, führen Sie imSHOW GRANTS-Client die Anweisung mysql aus:

SHOW GRANTS FOR 'cloudsqlsuperuser'

MySQL 8.4-Nutzerberechtigungen (cloudsqlsuperuser)

Ähnlich wie in Cloud SQL for MySQL 8.0 wird in Cloud SQL for MySQL 8.4 beim Erstellen eines neuen Nutzers automatisch die Rolle cloudsqlsuperuser zugewiesen.

In MySQL 8.4 hat die Rolle cloudsqlsuperuser dieselben Berechtigungen wie in MySQL 8.0.x. MySQL 8.4 weist jedoch die folgenden Hauptunterschiede zu MySQL 8.0.x auf:

Außerdem werden in Cloud SQL for MySQL 8.4 die in MySQL 8.4 eingeführten Berechtigungen TRANSACTION_GTID_TAG und TELEMETRY_LOG_ADMIN nicht gewährt.

Nächste Schritte