Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Você pode utilizar contas de serviço nos seus conectores da comunidade para gerenciar o acesso aos recursos em um só lugar. Um abordagem comum é delegar acesso a dados que os usuários não conseguiriam visualizar usando as próprias credenciais.
Você pode consolidar o faturamento para acessar os dados.
É possível implementar sua própria camada de controle de acesso no conector.
É possível delegar acesso a dados ou recursos aos quais as credenciais do usuário
não tem acesso.
Etapas de implementação
Crie uma conta de serviço na plataforma em que você está buscando dados.
Conceda as permissões necessárias à conta de serviço para que ela consiga acessar os recursos.
Armazene as credenciais da conta de serviço nas propriedades do script do seu conector.
Durante a execução do conector, use as credenciais armazenadas para buscar as informações necessárias
dados.
Opcional: implemente a lógica de controle de acesso para filtrar as informações.
.
Exemplo: como acessar o BigQuery com o Advanced Services do Looker Studio e uma conta de serviço
Você está desenvolvendo uma solução em que seus usuários criarão painéis diretamente de uma tabela do BigQuery. Se os usuários utilizarem o conector do BigQuery do Looker Studio,
precisam de acesso de leitura à tabela do BigQuery. e uma conta de faturamento do Google Cloud Platform (GCP). As etapas a seguir ilustram como usar um
para consolidar o faturamento e delegar acesso aos dados do BigQuery.
Verifique se a conta de serviço pode criar jobs do BigQuery e visualizar os dados do
na tabela necessária. Para mais detalhes, consulte Controle de acesso do BigQuery.
Para sua função getData, autentique a conta de serviço e gere
um token de acesso. Defina o escopo do OAuth2 como
https://www.googleapis.com/auth/bigquery.readonly:
Retorne o token de acesso com outros itens de configuração na resposta getData.
Veja a seguir um exemplo completo do código do conector:
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();}