Dienstkonto verwenden
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Sie können Dienstkonten in Ihren Community-Connectors verwenden, um den Ressourcenzugriff zentral zu verwalten. Ein häufiger Anwendungsfall ist das Delegieren des Zugriffs auf Daten, auf die Nutzer mit ihren eigenen Anmeldedaten nicht zugreifen können.
Sie können die Abrechnung für den Datenzugriff konsolidieren.
Sie können in Ihrem Connector eine eigene Zugriffssteuerungsschicht implementieren.
Sie können den Zugriff auf Daten oder Ressourcen delegieren, auf die mit den Anmeldedaten des Nutzers nicht zugegriffen werden kann.
Implementierungsschritte
Erstellen Sie ein Dienstkonto für die Plattform, von der Sie Daten abrufen.
Gewähren Sie dem Dienstkonto die erforderlichen Berechtigungen, damit es auf die erforderlichen Ressourcen zugreifen kann.
Speichern Sie die Anmeldedaten des Dienstkontos in den Skripteigenschaften Ihres Connectors.
Verwenden Sie bei der Ausführung des Connectors die gespeicherten Anmeldedaten, um die erforderlichen Daten abzurufen.
Optional: Implementieren Sie eine Zugriffssteuerungslogik, um die Daten zu filtern.
Beispiel: Zugriff auf BigQuery mit Data Studio Advanced Services und einem Dienstkonto
Sie entwickeln eine Lösung, mit der Ihre Nutzer Dashboards aus einer BigQuery-Tabelle erstellen können. Wenn Ihre Nutzer den BigQuery-Connector von Data Studio verwenden, benötigen sie Lesezugriff auf die BigQuery-Tabelle. Außerdem benötigen sie ein Rechnungskonto für die Google Cloud Platform (GCP). In den folgenden Schritten wird veranschaulicht, wie Sie ein Dienstkonto verwenden können, um die Abrechnung zu konsolidieren und den Zugriff auf die BigQuery-Daten zu delegieren.
Achten Sie darauf, dass das Dienstkonto BigQuery-Jobs erstellen und die Daten für die erforderliche Tabelle ansehen kann. Weitere Informationen finden Sie unter BigQuery-Zugriffssteuerung.
Fügen Sie Ihrem
Apps Script-Projekt die OAuth2 Apps Script-Bibliothek hinzu.
Authentifizieren Sie das Dienstkonto für Ihre getData-Funktion und generieren Sie
ein Zugriffstoken. Legen Sie den OAuth2-Bereich auf https://www.googleapis.com/auth/bigquery.readonly fest.
Geben Sie das Zugriffstoken mit anderen Konfigurationselementen in der getData-Antwort zurück.
Hier sehen Sie ein vollständiges Beispiel für den Connector-Code:
main.js
varcc=DataStudioApp.createCommunityConnector();varscriptProperties=PropertiesService.getScriptProperties();functionisAdminUser(){returntrue;}functiongetAuthType(){varAuthTypes=cc.AuthType;returncc.newAuthTypeResponse().setAuthType(AuthTypes.NONE).build();}functiongetConfig(request){varconfig=cc.getConfig();config.newInfo().setId('generalInfo').setText('This is an example connector to showcase row level security.');returnconfig.build();}functiongetFields(){varfields=cc.getFields();vartypes=cc.FieldType;varaggregations=cc.AggregationType;fields.newDimension().setId('region').setName('Region').setType(types.TEXT);fields.newMetric().setId('sales').setName('Sales').setType(types.NUMBER).setAggregation(aggregations.SUM);fields.newDimension().setId('date').setName('Date').setType(types.YEAR_MONTH_DAY);returnfields;}functiongetSchema(request){return{schema:getFields().build()};}varSERVICE_ACCOUNT_CREDS='SERVICE_ACCOUNT_CREDS';varSERVICE_ACCOUNT_KEY='private_key';varSERVICE_ACCOUNT_EMAIL='client_email';varBILLING_PROJECT_ID='project_id';/** * Copy the entire credentials JSON file from creating a service account in GCP. */functiongetServiceAccountCreds(){returnJSON.parse(scriptProperties.getProperty(SERVICE_ACCOUNT_CREDS));}functiongetOauthService(){varserviceAccountCreds=getServiceAccountCreds();varserviceAccountKey=serviceAccountCreds[SERVICE_ACCOUNT_KEY];varserviceAccountEmail=serviceAccountCreds[SERVICE_ACCOUNT_EMAIL];returnOAuth2.createService('RowLevelSecurity').setAuthorizationBaseUrl('https://accounts.google.com/o/oauth2/auth').setTokenUrl('https://accounts.google.com/o/oauth2/token').setPrivateKey(serviceAccountKey).setIssuer(serviceAccountEmail).setPropertyStore(scriptProperties).setCache(CacheService.getScriptCache()).setScope(['https://www.googleapis.com/auth/bigquery.readonly']);}varBASE_SQL='SELECT d.region, d.sales, d.date '+'FROM `datastudio-solutions.row_level_security.data` d '+'INNER JOIN `datastudio-solutions.row_level_security.access` a '+'ON d.region = a.region '+'where a.email=@email';functiongetData(request){varaccessToken=getOauthService().getAccessToken();varserviceAccountCreds=getServiceAccountCreds();varbillingProjectId=serviceAccountCreds[BILLING_PROJECT_ID];varemail=Session.getEffectiveUser().getEmail();varbqTypes=DataStudioApp.createCommunityConnector().BigQueryParameterType;returncc.newBigQueryConfig().setAccessToken(accessToken).setBillingProjectId(billingProjectId).setUseStandardSql(true).setQuery(BASE_SQL).addQueryParameter('email',bqTypes.STRING,email).build();}
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2026-04-18 (UTC)."],[],[]]