Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
Merkezileştirilmiş işlemler için Topluluk Bağlayıcılarınızdaki hizmet hesaplarını kullanabilirsiniz.
kaynak erişimi yönetimi. Yaygın kullanım alanlarından biri,
ve kullanıcıların kendi kimlik bilgilerini kullanarak erişemeyeceği veriler için de geçerlidir.
Veri erişimi için faturalandırmayı birleştirebilirsiniz.
Bağlayıcınıza kendi erişim denetimi katmanınızı uygulayabilirsiniz.
Kullanıcının kimlik bilgileriyle veri veya kaynaklara erişim yetkisi verebilirsiniz
adlı kullanıcının erişimi yok.
Uygulama adımları
Veri getirdiğiniz platform için bir hizmet hesabı oluşturun.
Hizmet hesabına erişebilmesi için gereken izinleri sağlayın
inceleme fırsatı sunar.
Hizmet hesabının kimlik bilgilerini bağlayıcınızın komut dosyasında depolayın
özellikler.
Bağlayıcı yürütme sırasında, gereken verileri getirmek için depolanan kimlik bilgilerini kullanın
dışı verilerdir.
İsteğe bağlı: Verileri filtrelemek için erişim denetimi mantığı uygulayın.
ziyaret edin.
Örnek: Looker Studio Advanced Services ve bir hizmet hesabıyla BigQuery'ye erişme
Kullanıcılarınızın tek bir yerden gösterge tabloları oluşturacağı bir çözüm
BigQuery tablosu. Kullanıcılarınız Looker Studio'nun BigQuery bağlayıcısını kullanıyorsa
BigQuery tablosuna okuma erişimi gerektirir. Ayrıca bir faturalandırma hesabı da gereklidir.
Google Cloud Platform (GCP) için yönergelerdir. Aşağıdaki adımlar,
hizmet hesabını kullandığınızdan emin olun.
getData fonksiyonunuz için hizmet hesabının kimliğini doğrulayın ve
erişim jetonundan yararlanabilirsiniz. OAuth2 kapsamını şu şekilde ayarlayın:
https://www.googleapis.com/auth/bigquery.readonly
getData yanıtındaki diğer yapılandırma öğeleriyle birlikte erişim jetonunu döndürün.
Aşağıda, bağlayıcı koduna ilişkin tam bir örnek 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();}