MySQL-Nutzer erstellen und verwalten

Auf dieser Seite wird beschrieben, wie Sie diese Aufgaben für Cloud SQL-Instanzen durchführen:

  • Standardnutzerkonto konfigurieren
  • Andere Nutzerkonten erstellen, löschen und aktualisieren

Informationen dazu, wie Nutzer in Cloud SQL funktionieren, finden Sie unter MySQL-Nutzer.

Hinweis

Bevor Sie diese Aufgaben ausführen, erstellen Sie zuerst eine Cloud SQL-Instanz. Weitere Informationen finden Sie unter Instanzen erstellen.

Wenn Sie den administrativen Client Ihrer Datenbank für die Nutzerverwaltung verwenden möchten, muss der Standardnutzer für die Instanz konfiguriert sein. Weitere Informationen finden Sie unter Standardkonto konfigurieren.

Darüber hinaus muss ein mit Ihrer Instanz verbundener administrativer Client konfiguriert sein. Weitere Informationen finden Sie unter Verbindungsoptionen für externe Anwendungen.

Standardnutzerkonto konfigurieren

Wenn Sie eine neue Cloud SQL-Instanz erstellen, müssen Sie zuerst das Standardnutzerkonto konfigurieren, bevor Sie eine Verbindung mit der Instanz herstellen können.

Für Cloud SQL for MySQL ist root der Standardnutzer.

So konfigurieren Sie den Standardnutzer:

Console

  1. Öffnen Sie in der Google Cloud Console die Seite "Cloud SQL-Instanzen".

    Zur Seite „Cloud SQL-Instanzen“

  2. Klicken Sie auf die Instanz, um die zugehörige Übersichtsseite zu öffnen.
  3. Wählen Sie im Navigationsmenü die Option Nutzer aus.
  4. Suchen Sie den Nutzer root mit dem Hostwert % (any host) und wählen Sie im Dreipunkt-Menü Dreipunkt-Menü Passwort ändern aus.
  5. Geben Sie ein starkes Passwort ein, das Sie sich gut merken können, und klicken Sie auf OK.

gcloud

Legen Sie das Passwort für den Standardnutzer fest:

gcloud sql users set-password root \
    --host=% --instance=[INSTANCE_NAME] --prompt-for-password

REST v1beta4

In der folgenden Anfrage wird mit der Methode users.update das Root-Nutzerkonto aktualisiert.

('root'@'%').

Ersetzen Sie diese Werte in den folgenden Anweisungen:

  • project-id: Ihre Projekt-ID
  • instance-id: die gewünschte Instanz-ID
  • user-id: die ID des Nutzers
  • password: das Passwort für den Nutzer

HTTP-Methode und URL:

PUT https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users?name=user-id

JSON-Text anfordern:

{
  "name": "user-id",
  "password": "password"
  }

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten in etwa folgende JSON-Antwort erhalten:

{
  "kind": "sql#operation",
  "targetLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "status": "DONE",
  "user": "user@example.com",
  "insertTime": "2020-02-07T22:38:41.217Z",
  "startTime": "2020-02-07T22:38:41.217Z",
  "endTime": "2020-02-07T22:38:44.801Z",
  "operationType": "UPDATE_USER",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

Nutzer erstellen

So erstellen Sie einen Nutzer:

Console

  1. Öffnen Sie in der Google Cloud Console die Seite "Cloud SQL-Instanzen".

    Zur Seite „Cloud SQL-Instanzen“

  2. Wählen Sie die Instanz aus, um die zugehörige Übersichtsseite zu öffnen.
  3. Wählen Sie im Navigationsmenü die Option Nutzer aus.
  4. Klicken Sie auf NUTZER HINZUFÜGEN.
  5. Geben Sie auf der Seite Nutzerkonto zur Instanz Instanzname hinzufügen die folgenden Informationen ein:
    • Nutzername
    • Passwort
    • Host (optional)

      Der Standardname ist „%“, d. h., dass die Hostliste uneingeschränkt ist. Sie können auch eine IP-Adresse bzw. einen IP-Adressbereich angeben. Dann können Nutzer nur von diesen Adressen aus auf die Datenbank zugreifen.

  6. Klicken Sie auf Erstellen.

Nutzer, die mit Cloud SQL erstellt wurden, haben die Berechtigungen, die der Rolle cloudsqlsuperuser zugeordnet sind: CREATEROLE, CREATEDB und LOGIN. Ein Nutzer, der von diesen Nutzern erstellt wird, kann Datenbankverbindungsberechtigungen haben, die verhindern, dass der Nutzer gelöscht wird.

In Cloud SQL erstellte Nutzer haben alle Berechtigungen außer FILE und SUPER. Bei Bedarf können Sie im Client mysql mit den Befehlen GRANT oder REVOKE die Berechtigungen eines Nutzers ändern.

gcloud

Erstellen Sie den Nutzer:

gcloud sql users create [user_name] \
   --host=[HOST] --instance=[INSTANCE_NAME] --password=[PASSWORD]

Nutzer, die mit Cloud SQL erstellt wurden, haben die Berechtigungen, die der Rolle cloudsqlsuperuser zugeordnet sind: CREATEROLE, CREATEDB und LOGIN. Ein Nutzer, der von diesen Nutzern erstellt wird, kann Datenbankverbindungsberechtigungen haben, die verhindern, dass der Nutzer gelöscht wird.

In Cloud SQL erstellte Nutzer haben alle Berechtigungen außer FILE und SUPER. Bei Bedarf können Sie im Client mysql mit den Befehlen GRANT oder REVOKE die Berechtigungen eines Nutzers ändern.

Für Cloud SQL gelten dieselben Längenbeschränkungen für Nutzernamen wie für lokales MySQL; 32 Zeichen für MySQL 8.0, 16 Zeichen für frühere Versionen.

REST v1beta4

In der folgenden Anfrage wird mit der Methode users.insert das Nutzerkonto „user_name“ erstellt.

Ersetzen Sie diese Werte in den folgenden Anweisungen:

  • project-id: Ihre Projekt-ID
  • instance-id: die gewünschte Instanz-ID
  • user-id: die ID des Nutzers
  • password: das Passwort für den Nutzer

HTTP-Methode und URL:

POST https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users

JSON-Text anfordern:

{
  "name": "user-id",
  "password": "password"
  }

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie müssten in etwa folgende JSON-Antwort erhalten:

{
  "kind": "sql#operation",
  "targetLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "status": "DONE",
  "user": "user@example.com",
  "insertTime": "2020-02-07T22:44:16.656Z",
  "startTime": "2020-02-07T22:44:16.686Z",
  "endTime": "2020-02-07T22:44:20.437Z",
  "operationType": "CREATE_USER",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

Nutzer, die mit Cloud SQL erstellt wurden, haben die Berechtigungen, die der Rolle cloudsqlsuperuser zugeordnet sind: CREATEROLE, CREATEDB und LOGIN. Ein Nutzer, der von diesen Nutzern erstellt wird, kann Datenbankverbindungsberechtigungen haben, die verhindern, dass der Nutzer gelöscht wird.

In Cloud SQL erstellte Nutzer haben alle Berechtigungen außer FILE und SUPER. Bei Bedarf können Sie im Client mysql mit den Befehlen GRANT oder REVOKE die Berechtigungen eines Nutzers ändern.

Für Cloud SQL gelten dieselben Längenbeschränkungen für Nutzernamen wie für lokales MySQL; 32 Zeichen für MySQL 8.0, 16 Zeichen für frühere Versionen.

MySQL-Client

  1. Erstellen Sie den Nutzer über die Eingabeaufforderung mysql:
      CREATE USER '[USER_NAME]'@'%'
         IDENTIFIED BY '[PASSWORD]';
      
  2. Sie können anhand der Nutzertabelle prüfen, ob der Nutzer erstellt wurde:
    SELECT user, host FROM mysql.user;
    
    Bei Instanzen der zweiten Generation wird das Ergebnis wie in diesem Beispiel ausgegeben:
    +----------+-----------+
    | user     | host      |
    +----------+-----------+
    | root     | %         |
    | newuser  | %         |
    +----------+-----------+
    1 row in set (0.01 sec)
    
  3. Weisen Sie dem Nutzer Berechtigungen mit der Anweisung GRANT zu. Weitere Informationen finden Sie unter Von MySQL gewährte Berechtigungen.
  4. Leeren Sie die Tabelle mysql.user, damit die Änderung beibehalten wird:
      FLUSH TABLES mysql.user;
    

Nutzerpasswort ändern

So ändern Sie ein Nutzerpasswort:

Console

  1. Öffnen Sie in der Google Cloud Console die Seite "Cloud SQL-Instanzen".

    Zur Seite „Cloud SQL-Instanzen“

  2. Wählen Sie die Instanz aus, um die zugehörige Übersichtsseite zu öffnen.
  3. Wählen Sie im Navigationsmenü die Option Nutzer aus.
  4. Klicken Sie für den zu aktualisierenden Nutzer auf das Dreipunkt-Menü Dreipunkt-Menü.
  5. Wählen Sie Passwort ändern aus, geben Sie ein neues Passwort ein und klicken Sie auf OK.

gcloud

Aktualisieren Sie das Passwort:

gcloud sql users set-password [USER_NAME] \
   --host=[HOST] --instance=[INSTANCE_NAME] --prompt-for-password

REST v1beta4

In der folgenden Anfrage wird mit der Methode users.update das Passwort für das Nutzerkonto 'user_name'@'%' aktualisiert. Wenn der Nutzer einen anderen Host hat, müssen Sie den Aufruf korrigieren und den korrekten Host eingeben.

Ersetzen Sie diese Werte in den folgenden Anweisungen:

  • project-id: Ihre Projekt-ID
  • instance-id: die gewünschte Instanz-ID
  • user-id: die ID des Nutzers
  • password: das Passwort für den Nutzer

HTTP-Methode und URL:

PUT https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users?name=user-id

JSON-Text anfordern:

{
  "name": "user-id",
  "password": "password"
  }

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie müssten in etwa folgende JSON-Antwort erhalten:

{
  "kind": "sql#operation",
  "targetLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "status": "DONE",
  "user": "user@example.com",
  "insertTime": "2020-02-07T22:38:41.217Z",
  "startTime": "2020-02-07T22:38:41.217Z",
  "endTime": "2020-02-07T22:38:44.801Z",
  "operationType": "UPDATE_USER",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

MySQL-Client

  1. Ändern Sie das Passwort in der Eingabeaufforderung mysql:
    SET PASSWORD FOR [USER] = PASSWORD('auth_string');
    
  2. Leeren Sie die Tabelle mysql.user, damit die Änderung beibehalten wird:
    FLUSH TABLES mysql.user;
    

Nutzer aktualisieren

Aktualisieren Sie Nutzereigenschaften wie den Host oder die Berechtigungen mit dem Client mysql. Weitere Informationen finden Sie unter MySQL User Account Management in der MySQL-Dokumentation.

Nutzer auflisten

So listen Sie Nutzer auf:

Console

  1. Öffnen Sie in der Google Cloud Console die Seite "Cloud SQL-Instanzen".

    Zur Seite „Cloud SQL-Instanzen“

  2. Wählen Sie die Instanz aus, um die zugehörige Übersichtsseite zu öffnen.
  3. Wählen Sie im Navigationsmenü die Option Nutzer aus.

gcloud

Listen Sie die Nutzer für diese Instanz auf:

gcloud sql users list --instance=[INSTANCE_NAME]

Eine vollständige Liste der Parameter für diesen Befehl finden Sie auf der Referenzseite für gcloud sql users list.

REST v1beta4

In der folgenden Anfrage werden mit der Methode users.list die für eine Instanz definierten Nutzer aufgelistet.

Ersetzen Sie diese Werte in den folgenden Anweisungen:

  • project-id: Ihre Projekt-ID
  • instance-id: die gewünschte Instanz-ID

HTTP-Methode und URL:

GET https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie müssten in etwa folgende JSON-Antwort erhalten:

{
  "kind": "sql#usersList",
  "items": [
    {
      "kind": "sql#user",
      "etag": "--redacted--",
      "name": "sqlserver",
      "host": "",
      "instance": "instance-id",
      "project": "project-id",
      "sqlserverUserDetails": {
        "serverRoles": [
          "CustomerDbRootRole"
        ]
      }
    },
    {
      "kind": "sql#user",
      "etag": "--redacted--",
      "name": "user-id-1",
      "host": "",
      "instance": "instance-id",
      "project": "project-id",
      "sqlserverUserDetails": {
        "serverRoles": [
          "CustomerDbRootRole"
        ]
      }
    },
    {
      "kind": "sql#user",
      "etag": "--redacted--",
      "name": "user-id-2",
      "host": "",
      "instance": "instance-id",
      "project": "project-id",
      "sqlserverUserDetails": {
        "serverRoles": [
          "CustomerDbRootRole"
        ]
      }
    },
    {
      ...
    },
    {
      ...
    }
  ]
}

MySQL-Client

Listen Sie die Nutzer über die Eingabeaufforderung mysql auf:

SELECT user, host FROM mysql.user;

Bei Instanzen der zweiten Generation wird das Ergebnis wie in diesem Beispiel ausgegeben:

+------+-----------+
| user | host      |
+------+-----------+
| root | %         |
+------+-----------+
1 row in set (0.01 sec)

In diesem Beispiel werden die Nutzer einer Instanz angezeigt; hier wurde das Administratorkonto 'root'@'%' hinzugefügt. Im Passwortfeld wird der Hash des Passworts angezeigt.

Nutzer löschen

So löschen Sie einen Nutzer:

Bevor Sie einen Nutzer löschen, müssen Sie alle seine Objekte entfernen oder deren Inhaberschaft neu zuweisen. Alle Berechtigungen, die der Rolle für andere Objekte gewährt wurden, müssen aufgehoben werden.

Console

  1. Öffnen Sie in der Google Cloud Console die Seite "Cloud SQL-Instanzen".

    Zur Seite „Cloud SQL-Instanzen“

  2. Wählen Sie die Instanz aus, um die zugehörige Übersichtsseite zu öffnen.
  3. Wählen Sie im Navigationsmenü die Option Nutzer aus.
  4. Klicken Sie für den zu löschenden Nutzer auf das Dreipunkt-Menü Dreipunkt-Menü.
  5. Wählen Sie Löschen aus und klicken Sie auf OK.

gcloud

Löschen Sie den Nutzer:

gcloud sql users delete [USER_NAME] --host=[HOST] --instance=[INSTANCE_NAME]

REST v1beta4

In der folgenden Anfrage wird mit der Methode users.delete das angegebene Nutzerkonto gelöscht.

Ersetzen Sie diese Werte in den folgenden Anweisungen:

  • project-id: Ihre Projekt-ID
  • instance-id: die gewünschte Instanz-ID
  • user-id: die ID des Nutzers

HTTP-Methode und URL:

DELETE https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users?host=&name=user-id

JSON-Text anfordern:

{
  "name": "user-id",
  "host": ""
}

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie müssten in etwa folgende JSON-Antwort erhalten:

{
  "kind": "sql#operation",
  "targetLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "status": "DONE",
  "user": "user@example.com",
  "insertTime": "2020-02-07T22:38:41.217Z",
  "startTime": "2020-02-07T22:38:41.217Z",
  "endTime": "2020-02-07T22:38:44.801Z",
  "operationType": "DELETE_USER",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

MySQL-Client

  1. Löschen Sie den Nutzer in der Eingabeaufforderung mysql:
    DROP USER '[USER_NAME]'@'[HOST_NAME]';
    

    Weitere Informationen zur Anweisung DROP USER finden Sie in der MySQL-Dokumentation.

  2. Leeren Sie die Tabelle mysql.user, damit die Änderung beibehalten wird:
    FLUSH TABLES mysql.user;
    

Nächste Schritte