Оптимизируйте свои подборки
Сохраняйте и классифицируйте контент в соответствии со своими настройками.
Вы можете использовать сервисные учетные записи в ваших Соединителях сообщества для централизованного управления доступом к ресурсам. Распространенным вариантом использования было бы делегирование доступа к данным, к которым пользователи не смогут получить доступ, используя свои собственные учетные данные.
Вы можете реализовать свой собственный уровень управления доступом в своем соединителе.
Вы можете делегировать доступ к данным или ресурсам, к которым учетные данные пользователя не имеют доступа.
Этапы реализации
Создайте сервисную учетную запись для платформы, с которой вы получаете данные.
Предоставьте необходимые разрешения учетной записи службы, чтобы она могла получить доступ к необходимым ресурсам.
Сохраните учетные данные учетной записи службы в свойствах сценария вашего соединителя.
Во время выполнения соединителя используйте сохраненные учетные данные для получения необходимых данных.
Необязательно : реализуйте логику управления доступом для фильтрации данных.
Пример. Доступ к BigQuery с помощью расширенных служб Looker Studio и учетной записи службы.
Вы создаете решение, в котором ваши пользователи будут создавать информационные панели на основе таблицы BigQuery. Если ваши пользователи используют коннектор BigQuery Looker Studio, им потребуется доступ для чтения к таблице BigQuery. Им также потребуется платежный аккаунт для Google Cloud Platform (GCP). Следующие шаги показывают, как использовать сервисный аккаунт для консолидации счетов и делегирования доступа к данным BigQuery.
Убедитесь, что сервисный аккаунт может создавать задания BigQuery и просматривать данные для необходимой таблицы. Подробности см. в разделе «Контроль доступа BigQuery» .
Для функции getData выполните аутентификацию учетной записи службы и сгенерируйте токен доступа. Установите область OAuth2 https://www.googleapis.com/auth/bigquery.readonly .
Верните токен доступа с другими элементами конфигурации в ответе getData .
Ниже приведен полный пример кода разъема:
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();}
[[["Прост для понимания","easyToUnderstand","thumb-up"],["Помог мне решить мою проблему","solvedMyProblem","thumb-up"],["Другое","otherUp","thumb-up"]],[["Отсутствует нужная мне информация","missingTheInformationINeed","thumb-down"],["Слишком сложен/слишком много шагов","tooComplicatedTooManySteps","thumb-down"],["Устарел","outOfDate","thumb-down"],["Проблема с переводом текста","translationIssue","thumb-down"],["Проблемы образцов/кода","samplesCodeIssue","thumb-down"],["Другое","otherDown","thumb-down"]],["Последнее обновление: 2025-07-24 UTC."],[],[]]