(0) کالا
هیچ محصولی در سبد خرید شما وجود ندارد.
دسته بندی موضوعات
    فیلترها
    زبان
    جستجو

    پیاده سازی Static and Dynamic Row Level Security (RLS) in Power BI (امنیت سطح ردیف به صورت ثابت و متحرک)

    پیاده سازی Static and Dynamic Row Level Security (RLS) in Power BI (امنیت سطح ردیف به صورت ثابت و متحرک)

    Row Level Security (RLS) ، به عبارت ساده ، روشی است که ما داده های ارائه شده در گزارش را بر اساس ورود کاربران محدود می کنیم.

    پیچیدگی تنظیم RLS بسته به تعداد دایمنشن و اعضای دایمنشن که نیاز به امنیت دارند متفاوت است.

    این رویکرد شامل ایجاد نقش برای انواع مختلف کاربر و سپس اعمال فیلترها در جداول دایمنشن مورد نظر است.

     با این حال ، اگر لیست کاربران شما طولانی تر باشد و دایمنشن شما در معرض تغییر باشد ، به روش پویا نیاز خواهید داشت.

     راه اندازی RLS استاتیک در Power BI :


    بیایید با یک مثال ثابت شروع کنیم. سناریویی را در نظر بگیرید که می خواهید جدول کشور را برای یک کاربر به ازای هر کاربر امنیت سازی کنید. مراحل زیر را طی خواهید کرد:

     

    در تب "Modeling" در نوار ابزار Power BI روی "Manage roles" کلیک کنید.

    Manage Roles in Power BI

     

    یک نقش جدید ایجاد کنید ، جدولی را که می خواهید بر اساس نقش فیلتر شود انتخاب کنید و سپس یک عبارت True / False ایجاد کنید تا این جدول با آن فیلتر شود.

    Create roles and filters

     

    اکنون که نقش ایجاد شده است ، عملکرد را با استفاده از دکمه "View as" آزمایش کنید.

     

    View report as user

       کادر کنار نقشی را که می خواهید آزمایش کنید علامت بزنید

    select roles

    راه اندازی RLS داینامیک در Power BI :

    به جای اختصاص دادن نقش به کاربران در پورتال BI  ، ما می توانیم لیستی از کاربران را در خارج (در پایگاه داده یا به سادگی در اکسل) ذخیره کنیم و از توابع USERNAME () یا USERPRINCIPALNAME () برای فیلتر کردن جداول داده ایمن استفاده کنیم.

    حالا مراحل را ببینیم!

    تعیین نقش های مختلف کاربر :
    به عنوان مثال ، برای کاربران عمومی ، ما می خواهیم نقشی در امنیت داده ها برای کشورهای قاره ای داشته باشیم. بنابراین ، در مورد داده های نمونه ما ، باید نقشه ای از کاربران به آمریکای شمالی و اروپا وجود داشته باشد.

    اگر کاربر "VP" باشد ، به او دسترسی کامل می دهیم.

    جداول "Users" و "Roles" چیزی شبیه به این خواهند داشت:

     Users and Roles                       Roles and Countries

    تنظیم روابط جدول
    جداول را با هم و سپس به جدول فکت مطابق تصویر پیوند دهید:

    Users[Role] 🡪 Roles[Role]

    Roles[Country] 🡪 financials[Country]

    Power BI Data Relationships

     

     

    نقش ها را مدیریت کنید
    نقش جدیدی ایجاد کنید. جدول "کاربران" را انتخاب کرده و یک عبارت true / false ایجاد کنید تا این جدول با آن فیلتر شود. در این مثال ، ما از تابع USERPRINCIPALNAME () استفاده خواهیم کرد.

     

    Create roles and filters

    نقش ها را آزمایش کنید
    اکنون که نقش ایجاد شده است ، عملکرد را با استفاده از دکمه "View as" آزمایش کنید.

    Select roles for viewing as

     

    از آنجا که User2 برای مشاهده کشورهای اروپایی تنظیم شده است ، ما بلافاصله می بینیم که داده ها فقط به فرانسه و آلمان فیلتر می شوند.

    از این پس هر زمان که تغییراتی در جدول کاربر و یا جدول نقش هایی که به این گزارش متصل است اعمال می کنید ، به طور خودکار جریان می یابد. نیازی نیست که وارد شوید و هر کاربر را به صورت جداگانه انتخاب کنید تا به هر نقش اختصاص یابد.

     سناریوی پیچیده تر :

    اکنون ، برای پیچیدگی بیشتر ، بیایید با استفاده از DAX پیشرفته ، امنیت بیش از یک دایمنشن را به صورت داینامیک بررسی کنیم.

    فرض کنید می خواهیم نقش های خود را به عنوان بخش های مختلف تجاری تعریف کنیم.

     

    ما می توانیم لیستی از بخش ها را به کاربران اختصاص دهیم و مقادیر بخش را با استفاده از عملکرد CONTAINSSTRING () فیلتر کنیم.

    ما یک ستون ، ستون RoleSegment را به جدول کاربران خود اضافه می کنیم. این را می توان با استفاده از یک تابع () LOOKUP () در Role Country در یک جدول جداگانه ، یا به صورت دستی برای هر کاربر سفارشی کرد. بهترین روش استفاده از روش جستجوی جدول است.

     Users countries segments

    Segments and Roles

     

    در این مورد ، ما یک جدول بخش جداگانه داریم که به جدول فکت اصلی ما متصل است. نیازی به ایجاد ارتباط مستقیم با این جدول نیست زیرا ما نقش های امنیتی را با استفاده از DAX فیلتر می کنیم. شکل چیزی شبیه به این خواهد بود:

    Data relationship

     

     

    در ویزارد"Manage roles" (که قبلاً استفاده شد) DAX زیر را در جدول بخش در نقش امنیت پیاده سازی کنید.

     

    create roles

    این DAX جدول بخش را به هر عضوی که در لیست جدا شده با کاما در قسمت RoleSegment در بالا وجود دارد فیلتر می کند. در حال حاضر وقتی از User3 فیلتر میگیریم، نه تنها کشورهایی را که تنها به آمریکای شمالی فیلتر شده اند ، بلکه بخشهایی را که در لیست "GeneralNA" محدود شده است ، مشاهده می کنیم.

     

    View report as role

     

     

    با استفاده از این دو روش به عنوان راهنما ، می توانید امنیت را برای هر ابعادی که مناسب می دانید در یک مدل داده واحد تنظیم کنید.

     

    نظر خود را وارد نمایید.