Dynamic RLS এর জন্য DAX ব্যবহার

Power BI এর জন্য Row-level Security (RLS) - পাওয়ার বিআই (Power BI) - Big Data and Analytics

256

Power BI তে Row-Level Security (RLS) একটি গুরুত্বপূর্ণ বৈশিষ্ট্য যা ব্যবহারকারীদের বিভিন্ন ডেটার ভিন্ন অংশ দেখানোর অনুমতি দেয়। ড্যাশবোর্ড বা রিপোর্টে ডেটার অ্যাক্সেস সীমাবদ্ধ করতে RLS ব্যবহৃত হয়, যাতে ব্যবহারকারী শুধু তাদের জন্য অনুমোদিত ডেটা দেখতে পায়। Dynamic RLS একটি শক্তিশালী টেকনিক্যাল পদ্ধতি, যার মাধ্যমে DAX (Data Analysis Expressions) ফাংশন ব্যবহার করে ডেটার অ্যাক্সেস কন্ট্রোল করা হয়।

Dynamic RLS কী?

Dynamic RLS এর মাধ্যমে ব্যবহারকারীদের জন্য স্বয়ংক্রিয়ভাবে নিরাপত্তা সেটিংস নির্ধারণ করা হয়, যা একাধিক ডেটা রোল বা গ্রুপ নির্ধারণ করতে সাহায্য করে। সাধারণত, DAX ব্যবহার করে একটি Security Table তৈরি করা হয়, যেখানে প্রতিটি ব্যবহারকারীর জন্য নির্দিষ্ট শর্ত অনুযায়ী ডেটা অ্যাক্সেস কন্ট্রোল করা হয়।


Dynamic RLS সেটআপ করার প্রক্রিয়া:

  1. Security Table তৈরি করা:

    • প্রথমে একটি Security Table তৈরি করতে হবে, যেখানে প্রতিটি ব্যবহারকারীর User ID বা Username এবং সেই ব্যবহারকারীর জন্য Access Level বা Role নির্ধারণ করা হবে। উদাহরণস্বরূপ, আপনি একটি টেবিল তৈরি করতে পারেন যার মধ্যে থাকবে:
      • Username (ব্যবহারকারীর নাম)
      • Region (অঞ্চল)
      • Role (রোল)

    উদাহরণ:

    UsernameRegionRole
    user1NorthAdmin
    user2SouthViewer
    user3EastEditor
  2. ডেটাতে RLS প্রয়োগ করা:
    • ডেটাসেটের Region বা অন্য কোনো ক্ষেত্রের উপর নির্ভরশীল নিরাপত্তা ফিল্টার প্রয়োগ করতে হবে।
    • এটি করতে, Modeling ট্যাব থেকে Manage Roles অপশনে ক্লিক করুন এবং নতুন রোল তৈরি করুন।
  3. DAX ব্যবহার করে RLS প্রয়োগ করা:

    • Dynamic RLS সেটআপের জন্য DAX ফাংশন ব্যবহার করতে হবে। এখানে আপনি USERPRINCIPALNAME() ফাংশনটি ব্যবহার করবেন, যা বর্তমান ব্যবহারকারীর লগইন আইডেন্টিটি শনাক্ত করতে সাহায্য করবে।

    DAX Expression:

    [Region] = LOOKUPVALUE(Security[Region], Security[Username], USERPRINCIPALNAME())
    

    এখানে, LOOKUPVALUE ফাংশনটি Security Table থেকে বর্তমান ব্যবহারকারীর Region (অঞ্চল) দেখে, এবং যদি ব্যবহারকারী সেই অঞ্চলের সাথে মেলে, তবে তাকে ডেটা অ্যাক্সেস দেয়।

  4. Roles তৈরি করা:
    • আপনি যখন Manage Roles অপশনে গিয়ে একটি নতুন রোল তৈরি করবেন, তখন এই DAX ফাংশনটি রোলের শর্ত হিসেবে ব্যবহার করবেন। উদাহরণস্বরূপ:
      • রোল তৈরি করুন, যেমন: Admin, Viewer, বা Editor
      • রোলের শর্ত হিসেবে DAX ব্যবহার করুন, যেমন:

        [Region] = LOOKUPVALUE(Security[Region], Security[Username], USERPRINCIPALNAME())
        
      • এখানে, বর্তমান ব্যবহারকারীর Region ফিল্ডটি Security Table থেকে যাচাই করা হবে এবং কেবলমাত্র সেই অঞ্চলের ডেটা দেখানো হবে।
  5. Testing RLS:
    • RLS অ্যাক্টিভেট করার পর, View as Role অপশন ব্যবহার করে নিশ্চিত করুন যে সঠিক ডেটা শুধুমাত্র নির্দিষ্ট ব্যবহারকারীদের দেখানো হচ্ছে। Modeling ট্যাব থেকে View as Role এ ক্লিক করে আপনি সিস্টেমে লগইন করা বিভিন্ন ব্যবহারকারীদের পক্ষে রিপোর্ট দেখতে পারবেন।

RLS DAX এর উদাহরণ:

Scenario: ধরুন, আপনার কাছে একটি সেলস ডেটাসেট রয়েছে এবং আপনি চান যে প্রতিটি ব্যবহারকারী শুধুমাত্র তার নির্দিষ্ট Region (অঞ্চল) এর সেলস ডেটা দেখতে পাবে।

Security Table:

UsernameRegion
user1North
user2South
user3East

এখন, আপনি একটি RLS তৈরি করবেন যাতে user1 শুধু "North" অঞ্চলের ডেটা দেখতে পারে, user2 শুধুমাত্র "South" অঞ্চলের ডেটা দেখতে পারে, এবং user3 "East" অঞ্চলের ডেটা দেখতে পারে।

DAX Expression:

[Region] = LOOKUPVALUE(Security[Region], Security[Username], USERPRINCIPALNAME())

এখানে, LOOKUPVALUE ফাংশনটি Security Table থেকে Region ফেরত দেয় যেখানে Username বর্তমান লগইন নামের সাথে মিলে। USERPRINCIPALNAME() ফাংশনটি লগইন করা ব্যবহারকারীর নাম শনাক্ত করে।


DAX RLS এর অন্যান্য উদাহরণ:

  1. Multiple Roles with Different Access Levels: আপনি AND এবং OR ফাংশন ব্যবহার করে একাধিক শর্ত দিয়ে Dynamic RLS সেটআপ করতে পারেন। যেমন, একটি ব্যবহারকারী যদি নির্দিষ্ট Region এবং Role এ থাকে, তবে তাকে অন্য অ্যাক্সেস প্রদান করা যেতে পারে।

    DAX Expression:

    AND(
        [Region] = LOOKUPVALUE(Security[Region], Security[Username], USERPRINCIPALNAME()),
        [Role] = "Admin"
    )
    
  2. DAX for Filtering Based on User Region: যদি আপনি চাইছেন যে, ব্যবহারকারীরা শুধু তাদের নির্দিষ্ট অঞ্চলের ডেটা দেখতে পাবে, তবে LOOKUPVALUE ব্যবহার করতে পারেন:

    [Region] = LOOKUPVALUE(Security[Region], Security[Username], USERPRINCIPALNAME())
    

সারাংশ:

Power BI তে Dynamic RLS (Row-Level Security) এর মাধ্যমে DAX ফাংশন ব্যবহার করে ব্যবহারকারীদের ডেটা অ্যাক্সেস কন্ট্রোল করা হয়। USERPRINCIPALNAME() ফাংশনটি ব্যবহারকারীর লগইন শনাক্ত করতে সহায়তা করে এবং LOOKUPVALUE ফাংশনটি ব্যবহার করে ডেটার অ্যাক্সেস সীমাবদ্ধ করা হয়। এই পদ্ধতি আপনাকে ডেটার নিরাপত্তা নিশ্চিত করতে সহায়তা করে, যাতে প্রতিটি ব্যবহারকারী শুধুমাত্র তাদের জন্য অনুমোদিত ডেটা দেখতে পায়।

Content added By
Promotion

Are you sure to start over?

Loading...