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 istroot@%
der Standardnutzer.So konfigurieren Sie den Standardnutzer:
Console
- Öffnen Sie in der Google Cloud Console die Seite "Cloud SQL-Instanzen".
- Klicken Sie auf die Instanz, um die zugehörige Übersichtsseite zu öffnen.
- Wählen Sie im Navigationsmenü die Option Nutzer aus.
- Suchen Sie den Nutzer
root
mit dem Hostwert% (any host)
und wählen Sie im Dreipunkt-MenüPasswort ändern aus.
- 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
- 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=root&host=%25
JSON-Text anfordern:
{ "name": "root", "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
- Öffnen Sie in der Google Cloud Console die Seite "Cloud SQL-Instanzen".
- Wählen Sie die Instanz aus, um die zugehörige Übersichtsseite zu öffnen.
- Wählen Sie im Navigationsmenü die Option Nutzer aus.
- Klicken Sie auf NUTZER HINZUFÜGEN.
- 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.
- 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
- Erstellen Sie den Nutzer über die Eingabeaufforderung
mysql
:CREATE USER '[USER_NAME]'@'%' IDENTIFIED BY '[PASSWORD]';
- 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)
- Weisen Sie dem Nutzer Berechtigungen mit der Anweisung
GRANT
zu. Weitere Informationen finden Sie unter Von MySQL gewährte Berechtigungen. - Leeren Sie die Tabelle
mysql.user
, damit die Änderung beibehalten wird:FLUSH TABLES mysql.user;
Nutzerpasswort ändern
So ändern Sie ein Nutzerpasswort:
Console
- Öffnen Sie in der Google Cloud Console die Seite "Cloud SQL-Instanzen".
- Wählen Sie die Instanz aus, um die zugehörige Übersichtsseite zu öffnen.
- Wählen Sie im Navigationsmenü die Option Nutzer aus.
- Klicken Sie für den zu aktualisierenden Nutzer auf das Dreipunkt-Menü
.
- 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
- Ändern Sie das Passwort in der Eingabeaufforderung
mysql
:SET PASSWORD FOR [USER] = PASSWORD('auth_string');
- 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 Clientmysql
. Weitere Informationen finden Sie unter MySQL User Account Management in der MySQL-Dokumentation.
Nutzer auflisten
So listen Sie Nutzer auf:
Console
- Öffnen Sie in der Google Cloud Console die Seite "Cloud SQL-Instanzen".
- Wählen Sie die Instanz aus, um die zugehörige Übersichtsseite zu öffnen.
- 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
- Öffnen Sie in der Google Cloud Console die Seite "Cloud SQL-Instanzen".
- Wählen Sie die Instanz aus, um die zugehörige Übersichtsseite zu öffnen.
- Wählen Sie im Navigationsmenü die Option Nutzer aus.
- Klicken Sie für den zu löschenden Nutzer auf das Dreipunkt-Menü
.
- 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
- 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. - Leeren Sie die Tabelle
mysql.user
, damit die Änderung beibehalten wird:FLUSH TABLES mysql.user;
Nächste Schritte
- Funktionsweise von Nutzerkonten in Cloud SQL
- MySQL-Dokumentation über die Erstellung von Nutzern
- Verbindung mit Instanzen herstellen