Mit AlloyDB for PostgreSQL verbinden
Als BigQuery-Administrator können Sie eine Verbindung erstellen, um auf AlloyDB-Daten zuzugreifen. Über diese Verbindung können Datenanalysten Daten in AlloyDB abfragen.
Führen Sie die folgenden Schritte aus, um eine Verbindung zu AlloyDB herzustellen:
Hinweise
- BigQuery Connection API aktivieren.
-
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle BigQuery-Verbindungsadministrator (
roles/bigquery.connectionAdmin
) für das Projekt zuzuweisen, um die Berechtigungen abzurufen, die Sie zum Erstellen einer AlloyDB-Verbindung benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
AlloyDB-Verbindung erstellen
Als Best Practice sollten Sie Verbindungen zur Verarbeitung von Datenbankanmeldedaten verwenden, wenn Sie eine Verbindung zu AlloyDB herstellen. Verbindungen werden verschlüsselt und sicher im BigQuery-Verbindungsdienst gespeichert. Wenn die Nutzeranmeldedaten für andere Daten in der Quelle gültig sind, können Sie die Verbindung wiederverwenden. Sie können beispielsweise eine Verbindung verwenden, um dieselbe Datenbank in einer AlloyDB-Instanz mehrmals abzufragen.
Wählen Sie eine der folgenden Optionen aus, um eine AlloyDB-Verbindung zu erstellen:
bq
Geben Sie den Befehl bq mk
mit den folgenden Flags ein:
bq mk \
--connection \
--location=LOCATION \
--project_id=PROJECT_ID \
--connector_configuration '{
"connector_id": "google-alloydb",
"asset": {
"database": "DATABASE",
"google_cloud_resource": "RESOURCE_PATH"
},
"authentication": {
"username_password": {
"username": "USERNAME",
"password": {
"plaintext": "PASSWORD"
}
}
}
}' \
CONNECTION_ID
Ersetzen Sie Folgendes:
LOCATION
: Geben Sie eine Region des BigQuery-Datasets an, die mit den Daten aus AlloyDB kombiniert werden soll. Abfragen, die diese Verbindung verwenden, müssen in dieser Region ausgeführt werden.PROJECT_ID
: Geben Sie Ihre Google Cloud-Projekt-ID ein.DATABASE
: Geben Sie den Namen der Datenbank ein.RESOURCE_PATH
: Geben Sie den Verbindungs-URI der primären AlloyDB-Instanz mit dem Präfix //alloydb.googleapis.com ein. AlloyDB-Leseinstanzen werden nicht unterstützt.- Beispiel-URI:
//alloydb.googleapis.com/projects/PROJECT_ID/locations/REGION_ID/clusters/CLUSTER_NAME/instances/INSTANCE_ID
- Beispiel-URI:
USERNAME
: Geben Sie den Namen des Datenbanknutzers ein.PASSWORD
: Geben Sie das Passwort des Datenbanknutzers ein.CONNECTION_ID
: Geben Sie eine Verbindungs-ID ein, um diese Verbindung zu identifizieren.
API
Innerhalb der BigQuery Connection API können Sie CreateConnection
innerhalb von ConnectionService
aufrufen, um eine Verbindung zu instanziieren. Weitere Informationen finden Sie auf der Seite der Clientbibliotheken.
Zugriff auf das Dienstkonto gewähren
Ein Dienstkonto wird automatisch erstellt, wenn Sie die erste Verbindung in einem Projekt erstellen. Der Name des Dienstkontos lautet BigQuery Connection Service Agent. Die Dienstkonto-ID hat das folgende Format:
service-PROJECT_NUMBER@gcp-sa-bigqueryconnection.iam.gserviceaccount.com
.
Wenn Sie eine Verbindung zu AlloyDB herstellen möchten, müssen Sie der neuen Verbindung Zugriff auf AlloyDB gewähren, damit BigQuery im Namen von Nutzern auf Daten zugreifen kann. Das Dienstkonto muss die folgenden Berechtigungen haben:
alloydb.instances.connect
Sie können dem mit der Verbindung verknüpften Dienstkonto die IAM-Rolle “AlloyDB-Client” zuweisen, die diese Berechtigung bereits hat. Sie können diesen Schritt überspringen, wenn das Dienstkonto bereits die erforderlichen Berechtigungen hat.
Console
Zur Seite IAM & Verwaltung.
Klicken Sie auf
Zugriff gewähren.Das Dialogfeld Principals hinzufügen wird geöffnet.
Geben Sie in das Feld Neue Hauptkonten den Dienstkontonamen BigQuery Connection Service Agent oder die Dienstkonto-ID aus den Verbindungsinformationen ein.
Wählen Sie im Feld Rolle auswählen die Option AlloyDB und dann AlloyDB Client aus.
Klicken Sie auf Speichern.
gcloud
Führen Sie den Befehl gcloud projects add-iam-policy-binding
aus:
gcloud projects add-iam-policy-binding PROJECT_ID --member=serviceAccount:SERVICE_ACCOUNT_ID --role=roles/alloydb.client
Geben Sie folgende Werte an:
PROJECT_ID
: Ihre Google Cloud-Projekt-ID.SERVICE_ACCOUNT_ID
: Ersetzen Sie die Projektnummer inservice-PROJECT_NUMBER@gcp-sa-bigqueryconnection.iam.gserviceaccount.com
und verwenden Sie sie.
Verbindungen für Nutzer freigeben
Sie können die folgenden Rollen zuweisen, damit Nutzer Daten abfragen und Verbindungen verwalten können:
roles/bigquery.connectionUser
: Nutzer können Verbindungen nutzen, um sich mit externen Datenquellen zu verbinden und diese abzufragen.roles/bigquery.connectionAdmin
: Nutzer können Verbindungen verwalten.
Weitere Informationen zu IAM-Rollen und Berechtigungen in BigQuery finden Sie unter Vordefinierte Rollen und Berechtigungen.
Wählen Sie eine der folgenden Optionen aus:
bq
Verwenden Sie den folgenden set-iam-policy
Befehl:
bq set-iam-policy RESOURCE FILE_NAME
Ersetzen Sie Folgendes:
RESOURCE
: Geben Sie den Ressourcennamen im Formatproject_id.region.connection_id
oderregion.connection_id
ein.FILE_NAME
: Geben Sie den Dateinamen ein, der die IAM-Richtlinie im JSON-Format enthält.
Weitere Informationen zum Befehl "set-iam-policy" finden Sie unter Zugriff auf Ressourcen mit IAM steuern.
API
Verwenden Sie die Methode projects.locations.connections.setIAM
in dem Referenzabschnitt zur BigQuery Connections REST API und geben Sie eine Instanz der Ressource policy
an.
Nächste Schritte
- Weitere Informationen zu verschiedenen Verbindungstypen
- Verbindungen verwalten
- Föderierte Abfragen
- AllyDB-Daten abfragen