Hizmet hesabı kullan
Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
Kaynak erişiminin merkezi olarak yönetilmesi için Community Connector'larınızda hizmet hesaplarını kullanabilirsiniz. Yaygın bir kullanım alanı, kullanıcıların kendi kimlik bilgilerini kullanarak erişemeyecekleri verilere erişimi temsilciye devretmektir.
Veri erişimi için faturalandırmayı birleştirebilirsiniz.
Bağlayıcınızda kendi erişim denetimi katmanınızı uygulayabilirsiniz.
Kullanıcının kimlik bilgilerinin erişimi olmayan verilere veya kaynaklara erişimi temsilci olarak verebilirsiniz.
Uygulama adımları
Veri getirdiğiniz platform için bir hizmet hesabı oluşturun.
Hizmet hesabına, gerekli kaynaklara erişebilmesi için gereken izinleri verin.
Hizmet hesabının kimlik bilgilerini bağlayıcınızın komut dosyası özelliklerinde saklayın.
Bağlayıcı yürütülürken gerekli verileri getirmek için depolanan kimlik bilgilerini kullanın.
İsteğe bağlı: Verileri filtrelemek için erişim denetimi mantığı uygulayın.
Örnek: Data Studio gelişmiş hizmetleri ve bir hizmet hesabı ile BigQuery'ye erişme
Kullanıcılarınızın BigQuery tablosundan kontrol panelleri oluşturacağı bir çözüm geliştiriyorsunuz. Kullanıcılarınız Data Studio'nun BigQuery bağlayıcısını kullanıyorsa BigQuery tablosuna okuma erişimi olması gerekir. Ayrıca Google Cloud Platform (GCP) için bir faturalandırma hesabı da gerekir. Aşağıdaki adımlarda, faturalandırmayı birleştirmek ve BigQuery verilerine erişimi temsilciye devretmek için hizmet hesabının nasıl kullanılacağı açıklanmaktadır.
Hizmet hesabının BigQuery işleri oluşturabildiğinden ve gerekli tablonun verilerini görüntüleyebildiğinden emin olun. Ayrıntılı bilgi için BigQuery erişim denetimi başlıklı makaleyi inceleyin.
getData işleviniz için hizmet hesabının kimliğini doğrulayın ve erişim jetonu oluşturun. OAuth2 kapsamını https://www.googleapis.com/auth/bigquery.readonly olarak ayarlayın.
getData yanıtında diğer yapılandırma öğeleriyle birlikte erişim jetonunu döndürür.
Aşağıda, bağlayıcı kodunun eksiksiz bir örneği verilmiştir:
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();}
[[["Anlaması kolay","easyToUnderstand","thumb-up"],["Sorunumu çözdü","solvedMyProblem","thumb-up"],["Diğer","otherUp","thumb-up"]],[["İhtiyacım olan bilgiler yok","missingTheInformationINeed","thumb-down"],["Çok karmaşık / çok fazla adım var","tooComplicatedTooManySteps","thumb-down"],["Güncel değil","outOfDate","thumb-down"],["Çeviri sorunu","translationIssue","thumb-down"],["Örnek veya kod sorunu","samplesCodeIssue","thumb-down"],["Diğer","otherDown","thumb-down"]],["Son güncelleme tarihi: 2026-04-18 UTC."],[],[]]