Auf dieser Seite wird beschrieben, wie Sie die integrierte Authentifizierung von Cloud SQL aktivieren und verwenden.
Eine Übersicht finden Sie unter Integrierte Datenbankauthentifizierung mit Cloud SQL.Vor dem Erstellen von Nutzern
- Cloud SQL-Instanz erstellen Weitere Informationen finden Sie unter Instanzen erstellen.
- Aktivieren Sie Passwortrichtlinien für die Instanz. Weitere Informationen finden Sie unter Richtlinien für Instanzpasswörter.
Wenn Sie den administrativen Client Ihrer Datenbank für die Nutzerverwaltung verwenden möchten, gehen Sie so vor:
Verbinden Sie den Client mit Ihrer Instanz. Siehe Verbindungsoptionen für externe Anwendungen.
Konfigurieren Sie den Standardnutzer auf der Instanz. Legen Sie dazu das Passwort fest. Weitere Informationen finden Sie unter Passwort für das Standardnutzerkonto festlegen.
Passwort für das Standardnutzerkonto festlegen
Wenn Sie eine neue Cloud SQL-Instanz erstellen, müssen Sie ein Passwort für das Standardnutzerkonto festlegen, bevor Sie eine Verbindung zur Instanz herstellen können.
Für Cloud SQL for PostgreSQL istpostgres
der Standardnutzer.Console
-
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.
- Klicken Sie auf den Instanznamen, um die Seite Übersicht einer Instanz zu öffnen.
- Wählen Sie im SQL-Navigationsmenü die Option Nutzer aus.
- Suchen Sie den Nutzer
postgres
und wählen Sie im Dreipunkt-Menü die Option Passwort ändern aus. - Geben Sie ein starkes Passwort ein, das Sie sich gut merken können, und klicken Sie auf OK.
gcloud
Verwenden Sie den Befehl gcloud sql users set-password
, um das Passwort für den Standardnutzer festzulegen.
Ersetzen Sie INSTANCE_NAME durch den Namen der Instanz, bevor Sie den Befehl ausführen.
gcloud sql users set-password postgres \ --instance=INSTANCE_NAME \ --prompt-for-password
REST Version 1
Verwenden Sie eine PUT-Anfrage mit der Methode users:update, um das Passwort für das Standardnutzerkonto zu aktualisieren.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- 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://sqladmin.googleapis.com/v1/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://sqladmin.googleapis.com/v1/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://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id", "targetProject": "project-id" }
REST v1beta4
Verwenden Sie eine PUT-Anfrage mit der Methode users:update, um das Passwort für das Standardnutzerkonto zu aktualisieren.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- 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://sqladmin.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 eine JSON-Antwort ähnlich wie diese erhalten:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.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://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id", "targetProject": "project-id" }
Nutzer erstellen
Nachdem Sie das Standardnutzerkonto eingerichtet haben, können Sie weitere Nutzer erstellen.
Console
-
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.
- Klicken Sie auf den Instanznamen, um die Seite Übersicht einer Instanz zu öffnen.
- Wählen Sie im SQL-Navigationsmenü die Option Nutzer aus.
- Klicken Sie auf Nutzerkonto hinzufügen.
Auf der Seite Nutzerkonto zur Instanz instance_name hinzufügen können Sie auswählen, ob sich der Nutzer mit der integrierten Datenbankmethode (Nutzername und Passwort) oder als IAM-Nutzer authentifizieren soll.
- Wählen Sie Integrierte Authentifizierung (Standardeinstellung) aus und fügen Sie die folgenden Informationen hinzu:
- Nutzername
- Optional. Passwort Geben Sie ein starkes Passwort ein, das Sie sich gut merken können.
- Klicken Sie auf Hinzufügen.
Nutzer, die auf Instanzen mit der Authentifizierungsmethode von Cloud SQL erstellt werden, erhalten automatisch die Rolle cloudsqlsuperuser
und haben die folgenden Berechtigungen: CREATEROLE
, CREATEDB
und LOGIN
.
Wenn Sie die Attribute für diese Nutzer ändern müssen, verwenden Sie den Befehl ALTER ROLE im psql
-Client. Nicht alle Attribute können mit ALTER ROLE
geändert werden. Zu den Ausnahmen gehören die Attribute der Rollen NOSUPERUSER
und NOREPLICATION
.
gcloud
Verwenden Sie zum Erstellen eines Nutzers den Befehl gcloud sql users create
.
Ersetzen Sie Folgendes:
- USER_NAME: Der Nutzername.
- INSTANCE_NAME: Name der Instanz
- PASSWORD: Passwort für den Nutzer
gcloud sql users create USER_NAME \ --instance=INSTANCE_NAME \ --password=PASSWORD
Nutzer, die auf Instanzen mit der Authentifizierungsmethode von Cloud SQL erstellt werden, erhalten automatisch die Rolle cloudsqlsuperuser
und haben die folgenden Berechtigungen: CREATEROLE
, CREATEDB
und LOGIN
.
Wenn Sie die Attribute für diese Nutzer ändern müssen, verwenden Sie den Befehl ALTER ROLE im psql
-Client. Nicht alle Attribute können mit ALTER ROLE
geändert werden. Zu den Ausnahmen gehören die Attribute der Rollen NOSUPERUSER
und NOREPLICATION
.
Für Cloud SQL gelten die gleichen Längenbeschränkungen für Nutzernamen wie für lokales PostgreSQL.
Wenn Sie einen Nutzer erstellen, können Sie Parameter für die Nutzerpasswortrichtlinie hinzufügen.
Terraform
Verwenden Sie zum Erstellen eines Nutzers eine Terraform-Ressource.
Änderungen anwenden
Führen Sie die Schritte in den folgenden Abschnitten aus, um Ihre Terraform-Konfiguration auf ein Google Cloud-Projekt anzuwenden.
Cloud Shell vorbereiten
- Rufen Sie Cloud Shell auf.
-
Legen Sie das Google Cloud-Standardprojekt fest, auf das Sie Ihre Terraform-Konfigurationen anwenden möchten.
Sie müssen diesen Befehl nur einmal pro Projekt und in jedem beliebigen Verzeichnis ausführen.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Umgebungsvariablen werden überschrieben, wenn Sie in der Terraform-Konfigurationsdatei explizite Werte festlegen.
Verzeichnis vorbereiten
Jede Terraform-Konfigurationsdatei muss ein eigenes Verzeichnis haben (auch als Stammmodul bezeichnet).
-
Erstellen Sie in Cloud Shell ein Verzeichnis und eine neue Datei in diesem Verzeichnis. Der Dateiname muss die Erweiterung
.tf
haben, z. B.main.tf
. In dieser Anleitung wird die Datei alsmain.tf
bezeichnet.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Wenn Sie einer Anleitung folgen, können Sie den Beispielcode in jedem Abschnitt oder Schritt kopieren.
Kopieren Sie den Beispielcode in das neu erstellte
main.tf
.Kopieren Sie optional den Code aus GitHub. Dies wird empfohlen, wenn das Terraform-Snippet Teil einer End-to-End-Lösung ist.
- Prüfen und ändern Sie die Beispielparameter, die auf Ihre Umgebung angewendet werden sollen.
- Speichern Sie die Änderungen.
-
Initialisieren Sie Terraform. Dies ist nur einmal für jedes Verzeichnis erforderlich.
terraform init
Fügen Sie optional die Option
-upgrade
ein, um die neueste Google-Anbieterversion zu verwenden:terraform init -upgrade
Änderungen anwenden
-
Prüfen Sie die Konfiguration und prüfen Sie, ob die Ressourcen, die Terraform erstellen oder aktualisieren wird, Ihren Erwartungen entsprechen:
terraform plan
Korrigieren Sie die Konfiguration nach Bedarf.
-
Wenden Sie die Terraform-Konfiguration an. Führen Sie dazu den folgenden Befehl aus und geben Sie
yes
an der Eingabeaufforderung ein:terraform apply
Warten Sie, bis Terraform die Meldung „Apply complete“ anzeigt.
- Öffnen Sie Ihr Google Cloud-Projekt, um die Ergebnisse aufzurufen. Rufen Sie in der Google Cloud Console Ihre Ressourcen in der Benutzeroberfläche auf, um sicherzustellen, dass Terraform sie erstellt oder aktualisiert hat.
Änderungen löschen
So löschen Sie das Projekt:
- Um den Löschschutz zu deaktivieren, setzen Sie in der Terraform-Konfigurationsdatei das Argument
deletion_protection
auffalse
.deletion_protection = "false"
- Wenden Sie die aktualisierte Terraform-Konfiguration an. Führen Sie dazu den folgenden Befehl aus und geben Sie
yes
an der Eingabeaufforderung ein:terraform apply
-
Entfernen Sie Ressourcen, die zuvor mit Ihrer Terraform-Konfiguration angewendet wurden, indem Sie den folgenden Befehl ausführen und
yes
an der Eingabeaufforderung eingeben:terraform destroy
REST Version 1
Verwenden Sie zum Erstellen eines Nutzers eine POST-Anfrage mit der Methode users:insert.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- 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://sqladmin.googleapis.com/v1/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 sollten in etwa folgende JSON-Antwort erhalten:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/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://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id", "targetProject": "project-id" }
Nutzer, die auf Instanzen mit der Authentifizierungsmethode von Cloud SQL erstellt werden, erhalten automatisch die Rolle cloudsqlsuperuser
und haben die folgenden Berechtigungen: CREATEROLE
, CREATEDB
und LOGIN
.
Wenn Sie die Attribute für diese Nutzer ändern müssen, verwenden Sie den Befehl ALTER ROLE im psql
-Client. Nicht alle Attribute können mit ALTER ROLE
geändert werden. Zu den Ausnahmen gehören die Attribute der Rollen NOSUPERUSER
und NOREPLICATION
.
Für Cloud SQL gelten die gleichen Längenbeschränkungen für Nutzernamen wie für lokales PostgreSQL.
Wenn Sie einen Nutzer erstellen, können Sie Parameter für die Nutzerpasswortrichtlinie hinzufügen.
REST v1beta4
Verwenden Sie zum Erstellen eines Nutzers eine POST-Anfrage mit der Methode users:insert.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- 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://sqladmin.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 sollten in etwa folgende JSON-Antwort erhalten:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.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://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id", "targetProject": "project-id" }
Nutzer, die auf Instanzen mit der Authentifizierungsmethode von Cloud SQL erstellt werden, erhalten automatisch die Rolle cloudsqlsuperuser
und haben die folgenden Berechtigungen: CREATEROLE
, CREATEDB
und LOGIN
.
Wenn Sie die Attribute für diese Nutzer ändern müssen, verwenden Sie den Befehl ALTER ROLE im psql
-Client. Nicht alle Attribute können mit ALTER ROLE
geändert werden. Zu den Ausnahmen gehören die Attribute der Rollen NOSUPERUSER
und NOREPLICATION
.
Für Cloud SQL gelten die gleichen Längenbeschränkungen für Nutzernamen wie für lokales PostgreSQL.
Wenn Sie einen Nutzer erstellen, können Sie Parameter für die Nutzerpasswortrichtlinie hinzufügen.
psql-Client
- Erstellen Sie den Nutzer über die
psql
-Eingabeaufforderung:CREATE USER USER_NAME WITH PASSWORD PASSWORD ATTRIBUTE1 ATTRIBUTE2...;
Geben Sie das Passwort ein, wenn Sie dazu aufgefordert werden.
Weitere Informationen über Rollenattribute finden Sie in der PostgreSQL-Dokumentation.
- Sie können überprüfen, ob der Nutzer erstellt wurde, indem Sie die Benutzertabelle anzeigen lassen:
SELECT * FROM pg_roles;
Richtlinie für Nutzerpasswort festlegen
Passwortrichtlinien lassen sich mit dem integrierten Authentifizierungstyp verwenden.
gcloud
Zum Festlegen der Nutzerpasswortrichtlinie verwenden Sie den Befehl gcloud sql users set-password-policy
.
Ersetzen Sie Folgendes:
- USER_NAME: Der Nutzername.
- INSTANCE_NAME: Name der Instanz
- HOST: Der Hostname des Nutzers als spezifische IP-Adresse, Adressbereich oder beliebiger Host (
%
). - PASSWORD_POLICY_ALLOWED_FAILED_ATTEMPTS: Optional: Die Anzahl, wie oft ein Nutzer das Passwort falsch eingeben kann, bevor das Konto gesperrt wird. Verwenden Sie
--password-policy-enable-failed-attempts-check
zum Aktivieren und--no-password-policy-enable-failed-attempts-check
zum Deaktivieren der Prüfung. - PASSWORD_POLICY_PASSWORD_EXPIRATION_DURATION (optional): Gibt die Anzahl der Tage an, nach denen das Passwort abläuft und der Nutzer ein neues erstellen muss.
gcloud sql users set-password-policy USER_NAME \ --instance=INSTANCE_NAME \ --host=HOST \ --password-policy-enable-failed-attempts-check \ --password-policy-allowed-failed-attempts=PASSWORD_POLICY_ALLOWED_FAILED_ATTEMPTS \ --password-policy-password-expiration-duration=PASSWORD_POLICY_PASSWORD_EXPIRATION_DURATION
Verwenden Sie den Parameter --clear-password-policy
, um eine Passwortrichtlinie für Nutzer zu entfernen.
gcloud sql users set-password-policy USER_NAME \ --instance=INSTANCE_NAME \ --host=HOST \ --clear-password-policy
Informationen über die Passwortrichtlinie für Nutzer finden Sie unter Nutzer auflisten.
REST Version 1
Verwenden Sie eine PUT-Anfrage mit der Methode users:update, um eine Richtlinie für das Nutzerpasswort festzulegen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: Ihre Projekt-ID.
- INSTANCE_ID: die Instanz-ID
- USER_ID: die ID des Nutzers
- PASSWORD: das Passwort des Nutzers
- FAILED_ATTEMPTS_CHECK: Setzen Sie diese Option auf
true
, um die Anzahl der fehlgeschlagenen Anmeldeversuche zu prüfen, nach denen das Konto gesperrt wird. - NUMBER_OF_ATTEMPTS: die Anzahl der fehlgeschlagenen Anmeldeversuche, nach denen das Konto gesperrt wird.
- PASSWORD_EXPIRATION_DURATION: die Anzahl der Tage, nach denen das Passwort abläuft und der Nutzer ein neues erstellen muss.
HTTP-Methode und URL:
PUT https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users?name=USER_ID
JSON-Text anfordern:
{ "name": "USER_ID", "password": "PASSWORD", "data": { "passwordValidationUserPolicy" : { { "enableFailedAttemptsCheck" : "FAILED_ATTEMPTS_CHECK", "allowedFailedAttempts" : "NUMBER_OF_ATTEMPTS", "passwordExpirationDuration" : "PASSWORD_EXPIRATION_DURATION" } }, } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
Informationen über die Passwortrichtlinie für Nutzer finden Sie unter Nutzer auflisten.
REST v1beta4
Verwenden Sie eine PUT-Anfrage mit der Methode users:update, um eine Richtlinie für das Nutzerpasswort festzulegen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: Ihre Projekt-ID.
- INSTANCE_ID: die Instanz-ID
- USER_ID: die ID des Nutzers
- PASSWORD: das Passwort des Nutzers
- FAILED_ATTEMPTS_CHECK: Setzen Sie diese Option auf
true
, um die Anzahl der fehlgeschlagenen Anmeldeversuche zu prüfen, nach denen das Konto gesperrt wird. - NUMBER_OF_ATTEMPTS: die Anzahl der fehlgeschlagenen Anmeldeversuche, nach denen das Konto gesperrt wird.
- PASSWORD_EXPIRATION_DURATION: die Anzahl der Tage, nach denen das Passwort abläuft und der Nutzer ein neues erstellen muss.
HTTP-Methode und URL:
PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users?name=USER_ID
JSON-Text anfordern:
{ "name": "USER_ID", "password": "PASSWORD", "data": { "passwordValidationUserPolicy" : { { "enableFailedAttemptsCheck" : "FAILED_ATTEMPTS_CHECK", "allowedFailedAttempts" : "NUMBER_OF_ATTEMPTS", "passwordExpirationDuration" : "PASSWORD_EXPIRATION_DURATION" } }, } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
Informationen über die Passwortrichtlinie für Nutzer finden Sie unter Nutzer auflisten.
Nutzer auflisten
Console
-
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.
- Klicken Sie auf den Instanznamen, um die Seite Übersicht einer Instanz zu öffnen.
- Wählen Sie im SQL-Navigationsmenü die Option Nutzer aus.
gcloud
Verwenden Sie den Befehl gcloud sql users list, um die Nutzer für diese Instanz aufzulisten:
gcloud sql users list \ --instance=INSTANCE_NAME
Der Befehl gibt für jeden Nutzer Name
, Host
und die Authentifizierung-Type
zurück.
Darüber hinaus werden für den integrierten Authentifizierungstyp die Einstellungen für die Passwortrichtlinie und der Status zurückgegeben. Beispiel:
NAME HOST TYPE PASSWORD_POLICY user1 BUILT_IN {'allowedFailedAttempts': 2, 'enableFailedAttemptsCheck': True, 'passwordExpirationDuration': '7d', 'status': { 'locked': True, 'passwordExpirationTime': '2022-07-01T19:53:45.822742904Z' } }
REST Version 1
Verwenden Sie zum Auflisten der für eine Instanz definierten Nutzer eine GET-Anfrage mit der Methode users:list.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- project-id: Ihre Projekt-ID
- instance-id: die gewünschte Instanz-ID
HTTP-Methode und URL:
GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/users
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese 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" ] } }, { ... }, { ... } ] }
Wenn eine Passwortrichtlinie für Nutzer
festgelegt wurde, enthält der Abschnitt items
der Antwort einen passwordPolicy
-Abschnitt. Das folgende Codebeispiel zeigt den Abschnitt passwordPolicy
.
{ ... "passwordValidationUserPolicy" : { { "enableFailedAttemptsCheck" : true, "allowedFailedAttempts" : 8, "passwordExpirationDuration" : "7d" } }, ... }
REST v1beta4
Verwenden Sie zum Auflisten der für eine Instanz definierten Nutzer eine GET-Anfrage mit der Methode users:list.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- project-id: Ihre Projekt-ID
- instance-id: die gewünschte Instanz-ID
HTTP-Methode und URL:
GET https://sqladmin.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 sollten eine JSON-Antwort ähnlich wie diese 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" ] } }, { ... }, { ... } ] }
Wenn eine Passwortrichtlinie für Nutzer
festgelegt wurde, enthält der Abschnitt items
der Antwort einen passwordPolicy
-Abschnitt. Das folgende Codebeispiel zeigt den Abschnitt passwordPolicy
.
{ ... "passwordValidationUserPolicy" : { { "enableFailedAttemptsCheck" : true, "allowedFailedAttempts" : 8, "passwordExpirationDuration" : "7d" } }, ... }
psql-Client
Listen Sie die PostgreSQL-Nutzer über die psql
-Eingabeaufforderung auf:
SELECT * FROM pg_roles;
Nutzerpasswort ändern
Nutzerpasswörter können auf eine der folgenden Arten geändert werden.
Console
-
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.
- Klicken Sie auf den Instanznamen, um die Seite Übersicht einer Instanz zu öffnen.
- Wählen Sie im SQL-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.
- Klicken Sie auf OK.
gcloud
Verwenden Sie den Befehl gcloud sql users set-password
, um ein Passwort zu ändern.
Ersetzen Sie Folgendes:
- USER_NAME: Der Nutzername.
- INSTANCE_NAME: Name der Instanz
gcloud sql users set-password USER_NAME \ --instance=INSTANCE_NAME \ --prompt-for-password
REST Version 1
Verwenden Sie zum Ändern eines Nutzerpassworts eine PUT-Anfrage mit der Methode users:update.
Mit der folgenden Anfrage wird das Passwort für das Nutzerkonto user_name
aktualisiert.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- project-id: Ihre Projekt-ID
- instance-id: die gewünschte Instanz-ID
- user-id: die ID des Nutzers
- password: Das neue Passwort für den Nutzer
HTTP-Methode und URL:
PUT https://sqladmin.googleapis.com/v1/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://sqladmin.googleapis.com/v1/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://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id", "targetProject": "project-id" }
REST v1beta4
Verwenden Sie zum Ändern eines Nutzerpassworts eine PUT-Anfrage mit der Methode users:update.
Mit der folgenden Anfrage wird das Passwort für das Nutzerkonto user_name
aktualisiert.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- project-id: Ihre Projekt-ID
- instance-id: die gewünschte Instanz-ID
- user-id: die ID des Nutzers
- password: Das neue Passwort für den Nutzer
HTTP-Methode und URL:
PUT https://sqladmin.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://sqladmin.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://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id", "targetProject": "project-id" }
psql-Client
Führen Sie in der Eingabeaufforderungpsql
den Befehl ALTER USER aus.
- Entsperren Sie den Nutzer.
ALTER USER USER_NAME WITH LOGIN;
- Ändern Sie das Passwort und geben Sie es ein, wenn Sie dazu aufgefordert werden.
ALTER USER USER_NAME WITH PASSWORD PASSWORD;
Wenn ein Nutzer aufgrund der Einstellungen von Passwortrichtlinien ausgesperrt ist, ändern Sie das Passwort, um ihn zu entsperren. Achten Sie darauf, dass Passwörter wenn Sie geändert werden der Passwortrichtlinie entsprechen.
Richtlinie für Nutzerpasswort entfernen
Sie können eine Passwortrichtlinie von einem Nutzer entfernen, der über den integrierten Authentifizierungstyp verfügt.
gcloud
Verwenden Sie zum Entfernen der Passwortrichtlinie für Nutzer den Befehl gcloud sql users set-password-policy
und den Parameter --clear-password-policy
.
Ersetzen Sie Folgendes:
- USER_NAME: der Nutzername.
- INSTANCE_NAME ist der Name der Instanz.
- HOST: der Hostname des Nutzers als bestimmte IP-Adresse, Adressbereich oder beliebiger Host (
%
).
gcloud sql users set-password-policy USER_NAME \ --instance=INSTANCE_NAME \ --host=HOST \ --clear-password-policy
REST Version 1
Verwenden Sie eine PUT-Anfrage mit der Methode users:update, um eine Richtlinie für das Nutzerpasswort zu entfernen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: Ihre Projekt-ID.
- INSTANCE_ID: die Instanz-ID
- USER_ID: die ID des Nutzers
- PASSWORD: das Passwort des Nutzers
HTTP-Methode und URL:
PUT https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users?name=USER_ID
JSON-Text anfordern:
{ "name": "USER_ID", "password": "PASSWORD", "data": { "passwordValidationUserPolicy" : {} } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
REST v1beta4
Verwenden Sie eine PUT-Anfrage mit der Methode users:update, um eine Richtlinie für das Nutzerpasswort zu entfernen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: Ihre Projekt-ID.
- INSTANCE_ID: die Instanz-ID
- USER_ID: die ID des Nutzers
- PASSWORD: das Passwort des Nutzers
HTTP-Methode und URL:
PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users?name=USER_ID
JSON-Text anfordern:
{ "name": "USER_ID", "password": "PASSWORD", "data": { "passwordValidationUserPolicy" : {} } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
Nutzer entfernen
Der Standardnutzer kann Nutzer entfernen.
Bevor Sie einen Nutzer entfernen, 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
-
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.
- Klicken Sie auf den Instanznamen, um die Seite Übersicht einer Instanz zu öffnen.
- Wählen Sie im SQL-Navigationsmenü die Option Nutzer aus.
- Klicken Sie für den zu entfernenden Nutzer auf das Dreipunkt-Menü .
- Wählen Sie Entfernen und anschließend noch einmal Entfernen aus.
gcloud
Verwenden Sie den Befehl gcloud sql users delete
, um einen Nutzer zu entfernen.
Ersetzen Sie Folgendes:
- USER_NAME: Der Nutzername.
- INSTANCE_NAME: Name der Instanz
gcloud sql users delete USER_NAME \ --instance=INSTANCE_NAME
REST Version 1
In der folgenden Anfrage wird mit der Methode users.delete das angegebene Nutzerkonto gelöscht.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: Ihre Projekt-ID
- INSTANCE_ID: die gewünschte Instanz-ID
- USERNAME: die E-Mail-Adresse des Nutzers oder Dienstkontos
HTTP-Methode und URL:
DELETE https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users?host=&name=USERNAME
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://sqladmin.googleapis.com/v1/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://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
REST v1beta4
In der folgenden Anfrage wird mit der Methode users.delete das angegebene Nutzerkonto gelöscht.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: Ihre Projekt-ID
- INSTANCE_ID: die gewünschte Instanz-ID
- USERNAME: die E-Mail-Adresse des Nutzers oder Dienstkontos
HTTP-Methode und URL:
DELETE https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users?host=&name=USERNAME
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.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://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
psql-Client
- Löschen Sie den Nutzer über die
psql
-Eingabeaufforderung:DROP ROLE USER_NAME;
Weitere Informationen zur
DROP ROLE
-Anweisung finden Sie in der PostgreSQL-Dokumentation.
Nutzerattribute aktualisieren
Verwenden Sie denpsql
-Client, um Nutzereigenschaften wie Attribute zu aktualisieren.
Weitere Informationen finden Sie unter Datenbankrollen in der PostgreSQL-Dokumentation.
Nächste Schritte
- Weitere Informationen zum Arbeiten mit Nutzern in Cloud SQL.
- Lesen Sie die PostgreSQL-Dokumentation für die Rollenerstellung.
- Verbindung mit Instanzen herstellen