با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
برای مدیریت متمرکز دسترسی به منابع، میتوانید از حسابهای سرویس در رابطهای انجمن خود استفاده کنید. یک مورد معمول استفاده، واگذاری دسترسی به دادههایی است که کاربران نمیتوانند با استفاده از اعتبار خود به آن دسترسی داشته باشند.
میتوانید صورتحساب را برای دسترسی به دادهها ادغام کنید.
شما می توانید لایه کنترل دسترسی خود را در کانکتور خود پیاده سازی کنید.
شما می توانید دسترسی به داده ها یا منابعی را که اعتبار کاربر به آنها دسترسی ندارد واگذار کنید.
مراحل پیاده سازی
برای پلتفرمی که دادهها را از آن واکشی میکنید، یک حساب سرویس ایجاد کنید.
مجوزهای لازم را برای حساب سرویس ارائه دهید تا بتواند به منابع مورد نیاز دسترسی پیدا کند.
اطلاعات کاربری حساب سرویس را در ویژگی های اسکریپت رابط خود ذخیره کنید.
در طول اجرای رابط، از اعتبارنامه های ذخیره شده برای واکشی داده های مورد نیاز استفاده کنید.
اختیاری : منطق کنترل دسترسی را برای فیلتر کردن داده ها پیاده سازی کنید.
مثال: دسترسی به BigQuery با سرویسهای پیشرفته استودیوی Looker و یک حساب سرویس
شما در حال ساخت راه حلی هستید که در آن کاربران شما داشبوردهایی را از جدول BigQuery بسازند. اگر کاربران شما از رابط BigQuery استودیوی Looker استفاده می کنند، به جدول BigQuery دسترسی خواندن نیاز دارند. آنها همچنین به یک حساب صورتحساب برای Google Cloud Platform (GCP) نیاز دارند. مراحل زیر نحوه استفاده از یک حساب سرویس برای تجمیع صورتحساب و واگذاری دسترسی به دادههای BigQuery را نشان میدهد.
مطمئن شوید که حساب سرویس میتواند کارهای BigQuery ایجاد کند و دادههای جدول مورد نیاز را مشاهده کند. برای جزئیات بیشتر به BigQuery Access Control مراجعه کنید.
برای تابع 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-24 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","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 بهوقت ساعت هماهنگ جهانی."],[],[]]