রিসোর্স অ্যাক্সেস কেন্দ্রীভূত পরিচালনার জন্য আপনি আপনার কমিউনিটি সংযোগকারীগুলিতে পরিষেবা অ্যাকাউন্টগুলি ব্যবহার করতে পারেন। একটি সাধারণ ব্যবহারের ক্ষেত্রে ব্যবহারকারীরা তাদের নিজস্ব শংসাপত্র ব্যবহার করে অ্যাক্সেস করতে সক্ষম হবে না এমন ডেটাতে অ্যাক্সেস অর্পণ করা হবে।
সংযোগকারী কার্যকর করার সময়, প্রয়োজনীয় ডেটা আনতে সঞ্চিত শংসাপত্রগুলি ব্যবহার করুন৷
ঐচ্ছিক : ডেটা ফিল্টার করতে অ্যাক্সেস কন্ট্রোল লজিক প্রয়োগ করুন।
উদাহরণ: Looker Studio অ্যাডভান্সড পরিষেবা এবং একটি পরিষেবা অ্যাকাউন্টের মাধ্যমে BigQuery অ্যাক্সেস করা
আপনি একটি সমাধান তৈরি করছেন যেখানে আপনার ব্যবহারকারীরা একটি BigQuery টেবিল থেকে ড্যাশবোর্ড তৈরি করবে। আপনার ব্যবহারকারীরা লুকার স্টুডিওর BigQuery সংযোগকারী ব্যবহার করলে, তাদের BigQuery টেবিলে পড়ার অ্যাক্সেসের প্রয়োজন হবে। তাদের Google ক্লাউড প্ল্যাটফর্ম (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();}
[null,null,["2024-11-13 UTC-তে শেষবার আপডেট করা হয়েছে।"],[[["Community Connectors can utilize service accounts for centralized resource access management, enabling data access delegation beyond user credentials."],["Service accounts offer benefits like consolidated billing, custom access control implementation, and access to otherwise restricted data or resources."],["Implementing service accounts involves creating a dedicated account, granting necessary permissions, securely storing credentials in script properties, and utilizing these during connector execution."],["For enhanced security, avoid storing service account credentials directly in code; instead, leverage connector script properties to safeguard sensitive information."],["The provided example demonstrates using a service account with Looker Studio Advanced Services for secure and controlled access to BigQuery data, consolidating billing and delegating access efficiently."]]],[]]