تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
يمكنك استخدام حسابات الخدمة في "وصلات المجتمع" للحصول على بيانات
إدارة الوصول إلى الموارد. تتمثل إحدى حالات الاستخدام الشائعة في تفويض الوصول إلى
بيانات لا يستطيع المستخدمون الوصول إليها باستخدام بيانات الاعتماد الخاصة بهم.
يمكنك تنفيذ طبقة التحكم في الوصول الخاصة بك في الموصل.
يمكنك تفويض الوصول إلى البيانات أو الموارد التي تتضمن بيانات اعتماد المستخدم
لا يمكن الوصول إليها.
خطوات التنفيذ
أنشِئ حساب خدمة للنظام الأساسي الذي تحصل منه على البيانات.
يجب تقديم الأذونات اللازمة لحساب الخدمة ليتمكّن من الوصول إلى
الموارد المطلوبة.
تخزين بيانات اعتماد حساب الخدمة في النص البرمجي للموصِّل
المواقع.
أثناء تنفيذ موصل، يمكنك استخدام بيانات الاعتماد المخزنة لاسترجاع البيانات المطلوبة
البيانات.
اختياري: يمكنك تنفيذ منطق التحكّم في الوصول لفلترة البيانات.
مثال: الوصول إلى BigQuery باستخدام خدمات Looker Studio Advanced وحساب خدمة
أنت تبني حلاً يقوم فيه المستخدمون لديك بإنشاء لوحات معلومات من
جدول BigQuery. إذا كان المستخدمون يستخدمون موصِّل BigQuery في Looker Studio، سيكون بإمكانهم
بحاجة إلى إذن بقراءة محتوى جدول BigQuery. سيحتاجون أيضًا إلى حساب فوترة.
لـ Google Cloud Platform (GCP). توضح الخطوات التالية كيفية استخدام
حساب الخدمة لدمج الفوترة وتفويض الوصول إلى بيانات 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();}
تاريخ التعديل الأخير: 2025-07-25 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","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-25 (حسب التوقيت العالمي المتفَّق عليه)"],[],[]]