امنیت سطح ردیف یا Row Level Security (RLS) با Power BI می تواند برای محدود کردن دسترسی به داده ها برای کاربران مشخص استفاده شود.
فیلترها دسترسی به داده ها را در سطح ردیف محدود می کنند و می توانید فیلترها را در نقش ها تعریف کنید.
در سرویس Power BI، اعضای یک فضای کاری به مجموعه داده ها در فضای کاری دسترسی دارند.
RLS این دسترسی به داده را محدود نمی کند.میتوانید RLS را برای مدلهای داده وارد شده به Power BI با Power BI Desktop پیکربندی کنید.
همچنین می توانید RLS را روی مجموعه داده هایی که از DirectQuery استفاده می کنند، مانند SQL Server، پیکربندی کنید. برای سرویسهای تجزیه و تحلیل یا خدمات تجزیه و تحلیل Azure، امنیت سطح ردیف را در مدل پیکربندی میکنید، نه در Power BI Desktop.
گزینه RLS برای مجموعه داده های اتصال زنده نمایش داده نمی شود.
نقش ها و قوانین را در Power BI Desktop تعریف کنید
شما می توانید نقش ها و قوانین را در Power BI Desktop تعریف کنید. وقتی در Power BI منتشر می کنید، تعاریف نقش را نیز منتشر می کند.
برای تعریف نقش های امنیتی، مراحل زیر را دنبال کنید:
۱- داده ها را به گزارش Power BI Desktop خود وارد کنید یا اتصال DirectQuery را پیکربندی کنید.
توجه داشته باشید : نمیتوانید نقشهایی را در Power BI Desktop برای اتصالات زنده خدمات تحلیلی تعریف کنید.
۲- از تب Modeling، Manage Roles را انتخاب کنید.
۳- از پنجره Manage roles، Create را انتخاب کنید.
۴- در قسمت Roles، یک نام برای نقش ارائه دهید.
توجه داشته باشید : شما نمی توانید یک نقش را با کاما تعریف کنید، به عنوان مثال London, ParisRole.
۵- در زیر جدولها، جدولی را انتخاب کنید که میخواهید قانون DAX را روی آن اعمال کنید.
۶- در کادر عبارت Table filter DAX، عبارات DAX را وارد کنید. این عبارت مقدار true یا false را برمی گرداند. مثلا
[Entity ID] = “Value”.
توجه داشته باشید : در این عبارت می توانید از username() استفاده کنید. توجه داشته باشید که username() دارای فرمت DOMAIN\username در Power BI Desktop است. در سرویس Power BI و Power BI Report Server، در قالب نام اصلی کاربر (UPN) است. از طرف دیگر، میتوانید از userprincipalname() استفاده کنید که همیشه کاربر را در قالب نام اصلی کاربر، username@contoso.com برمیگرداند.
RLS in Power BI
۷- پس از ایجاد عبارت DAX، علامت تیک بالای کادر عبارت را برای تأیید اعتبار عبارت انتخاب کنید.
۸- ذخیره را انتخاب کنید.
نمیتوانید کاربران را به نقشی در Power BI Desktop اختصاص دهید.
آنها را در سرویس Power BI اختصاص می دهید. میتوانید با استفاده از username() یا userprincipalname() DAX و پیکربندی روابط مناسب، امنیت پویا را در Power BI Desktop فعال کنید.
به طور پیشفرض، فیلتر امنیتی سطح ردیف از فیلترهای تک جهتی استفاده میکند، خواه این روابط روی یک جهت یا دو جهت تنظیم شده باشند.
با انتخاب رابطه و علامت زدن کادر بررسی اعمال فیلتر امنیتی در هر دو جهت، میتوانید فیلتر متقابل دو جهته را با امنیت در سطح ردیف به صورت دستی فعال کنید.
هنگامی که امنیت سطح ردیف پویا را در سطح سرور نیز پیادهسازی کردهاید، این گزینه را انتخاب کنید، جایی که امنیت در سطح ردیف بر اساس نام کاربری یا شناسه ورود به سیستم است.
برای مشاهده ویدیوی آموزشی Page Level Security in Power BI در یوتیوب لینک زیر را کلیک کنید ⇓
⇐ ⇐ Page Level Security in Power BI
نقش ها را در Power BI Desktop اعتبار سنجی کنید
پس از ایجاد نقشهای خود، نتایج نقشها را در Power BI Desktop آزمایش کنید.
۱- از تب Modeling، View as را انتخاب کنید.
پنجره View as roles ظاهر می شود، جایی که نقش هایی را که ایجاد کرده اید مشاهده می کنید.
۲- نقشی را که ایجاد کرده اید انتخاب کنید و سپس برای اعمال آن نقش OK را انتخاب کنید.
گزارش داده ها را برای آن نقش مرتبط نشان می دهد.
۳- همچنین میتوانید کاربر دیگر را انتخاب کنید و یک کاربرد مشخص را ارائه دهید
بهتر است نام اصلی کاربر (UPN) را ارائه کنید زیرا سرویس Power BI و Power BI Report Server از این نام استفاده می کنند.
در Power BI Desktop، سایر کاربران تنها در صورتی نتایج متفاوتی را نشان میدهند که از امنیت پویا بر اساس عبارات DAX خود استفاده میکنید.
۴- OK را انتخاب کنید.
گزارش بر اساس آنچه که کاربر می تواند ببیند ارائه می شود.
توجه داشته باشید : ویژگی View as role برای مدلهای DirectQuery با فعال بودن Single Sign-On (SSO) کار نمیکند.
اکنون که اعتبار سنجی نقش ها را در Power BI Desktop تمام کردید، ادامه دهید و گزارش خود را در سرویس Power BI منتشر کنید.
امنیت مدل خود را مدیریت کنید
برای مدیریت امنیت در مدل داده خود، فضای کاری را که در آن گزارش خود را در سرویس Power BI ذخیره کرده اید باز کنید و مراحل زیر را انجام دهید:
۱- در سرویس Power BI، منوی گزینه های بیشتر را برای یک مجموعه داده انتخاب کنید. این منو زمانی ظاهر می شود که روی نام مجموعه داده ای قرار می گیرید، چه آن را از منوی پیمایش یا صفحه فضای کاری انتخاب کنید.
۲- امنیت را انتخاب کنید.
امنیت شما را به صفحه امنیت در سطح نقش می برد، جایی که اعضا را به نقشی که در Power BI Desktop ایجاد کرده اید اضافه می کنید.
فقط صاحبان مجموعه داده امنیت را می بینند. اگر مجموعه داده در یک گروه باشد، فقط مدیران گروه گزینه امنیتی را خواهند دید.
شما فقط می توانید نقش ها را در Power BI Desktop ایجاد یا تغییر دهید.
کار با اعضا
اضافه کردن اعضا
در سرویس Power BI، می توانید با تایپ آدرس ایمیل یا نام کاربر یا گروه امنیتی، عضوی را به نقش اضافه کنید. نمیتوانید گروههای ایجاد شده در Power BI را اضافه کنید. می توانید اعضای خارج از سازمان خود را اضافه کنید.
می توانید از گروه های زیر برای تنظیم امنیت سطح ردیف استفاده کنید.
- گروه توزیع
- گروه دارای ایمیل
- گروه امنیتی
البته توجه داشته باشید که گروه های Office 365 پشتیبانی نمی شوند و نمی توان آنها را به هیچ نقشی اضافه کرد.
همچنین با شماره داخل پرانتز در کنار نام نقش یا کنار اعضا، میتوانید تعداد اعضای نقش را ببینید.
حذف اعضا
میتوانید با انتخاب علامت X در کنار نام آنها، اعضا را حذف کنید
اعتبار سنجی نقش در سرویس Power BI
میتوانید با آزمایش نقش تأیید کنید که نقشی که تعریف کردهاید در سرویس Power BI به درستی کار میکند.
- گزینه های بیشتر (…) را در کنار نقش انتخاب کنید.
- Test data را به عنوان نقش انتخاب کنید.
گزارشهایی را میبینید که برای این نقش در دسترس هستند. داشبوردها در این نما نشان داده نمی شوند. در هدر صفحه، نقشی که اعمال می شود نشان داده می شود.
با انتخاب Now viewing as، نقش های دیگر یا ترکیبی از نقش ها را آزمایش کنید
میتوانید انتخاب کنید که دادهها را بهعنوان یک شخص خاص مشاهده کنید یا میتوانید ترکیبی از نقشهای موجود را برای تأیید اعتبار آنها انتخاب کنید.
برای بازگشت به حالت عادی، بازگشت به امنیت سطح ردیف را انتخاب کنید.
با استفاده از username() یا userprincipalname() تابع DAX
شما می توانید از توابع DAX username() یا userprincipalname() در مجموعه داده خود بهره ببرید.
می توانید آنها را در عبارات در Power BI Desktop استفاده کنید. هنگامی که مدل خود را منتشر می کنید، از آن در سرویس Power BI استفاده می شود.
در Power BI Desktop، username() یک کاربر را با فرمت DOMAIN\User و userprincipalname() کاربر را با فرمت user@contoso.com برمی گرداند.
در سرویس Power BI، username() و userprincipalname() هر دو نام اصلی کاربر (UPN) را برمیگردانند. این به نظر شبیه یک آدرس ایمیل است.
استفاده از RLS با فضاهای کاری در Power BI
اگر گزارش Power BI Desktop خود را در یک تجربه فضای کاری جدید در سرویس Power BI منتشر کنید، نقش های RLS برای اعضایی که به نقش Viewer در فضای کاری اختصاص داده شده اند اعمال می شود.
حتی اگر به Viewers مجوز ساخت مجموعه داده داده شود، RLS همچنان اعمال می شود. به عنوان مثال، اگر Viewers با مجوز ساخت از Analyze در اکسل استفاده کند، نمای آنها از داده ها توسط RLS محافظت می شود.
اعضای فضای کاری که به آنها Admin، Member یا Contributor اختصاص داده شده است، مجوز ویرایش مجموعه داده را دارند و بنابراین، RLS برای آنها اعمال نمی شود.
اگر میخواهید RLS برای افراد در یک فضای کاری اعمال شود، فقط میتوانید نقش Viewer را به آنها اختصاص دهید.
هشدار : اگر یک فضای کاری کلاسیک را طوری پیکربندی کردهاید که اعضا مجوز ویرایش داشته باشند، نقشهای RLS برای آنها اعمال نمیشود. کاربران می توانند تمام داده ها را ببینند.
ملاحظات و محدودیت ها
محدودیتهای فعلی برای امنیت سطح ردیف در مدلهای ابری به شرح زیر است:
اگر قبلاً نقشها و قوانینی را در سرویس Power BI تعریف کردهاید، باید آنها را دوباره در Power BI Desktop ایجاد کنید.
شما می توانید RLS را فقط روی مجموعه داده های ایجاد شده با Power BI Desktop تعریف کنید. اگر می خواهید RLS را برای مجموعه داده های ایجاد شده با اکسل فعال کنید، ابتدا باید فایل های خود را به فایل های Power BI Desktop (PBIX) تبدیل کنید.
اصول سرویس را نمی توان به نقش RLS اضافه کرد. بر این اساس، RLS برای برنامههایی که از یک اصل سرویس به عنوان هویت مؤثر نهایی استفاده میکنند، اعمال نخواهد شد.
فقط اتصالات Import و DirectQuery پشتیبانی می شوند. اتصالات زنده به خدمات تجزیه و تحلیل در مدل داخلی انجام می شود.
ویژگی Test as role/View as role برای مدل های DirectQuery با فعال بودن Single Sign-On (SSO) کار نمی کند.
مشکل: انتشار مجدد زمانی که RLS پیکربندی شده است
یک مشکل شناخته شده وجود دارد که در آن اگر بخواهید گزارشی را که قبلاً منتشر شده از Power BI Desktop منتشر کنید، یک پیام خطا دریافت خواهید کرد. سناریو به شرح زیر است:
- Annaیک مجموعه داده دارد که در سرویس Power BI منتشر شده و RLS را پیکربندی کرده است.
- آنا گزارش را در Power BI Desktop به روز می کند و دوباره منتشر می کند.
- آنا یک خطا دریافت می کند.
راه حل
فایل Power BI Desktop را از سرویس Power BI تا رفع این مشکل مجدداً منتشر کنید.
می توانید این کار را با انتخاب Get Data > Files انجام دهید.
موضوع: نقش های متعدد و روابط محدود
اگر به چند نقش RLS تعلق داشته باشید و حداقل یکی از نقش ها به یک رابطه محدود متکی باشد، پیام خطا دریافت می کنید.
مدل داده زیر را در نظر بگیرید:
در این مدل داده ساده شده، که دادهها را از دو مجموعه داده Power BI ترکیب میکند، دو رابطه وجود دارد:
- یک رابطه منظم بین فروش و محصول.
- رابطه محدود بین فروش و مشتری. این رابطه محدود است زیرا مشتری در یک گروه منبع متفاوت است. این تنها دلیل محدود شدن یک رابطه نیست.
همچنین دو نقش RLS در این مدل داده تعریف شده است:
- RLS_Product که روی Product تعریف شده و دسترسی به اطلاعات محصول را محدود می کند.
- RLS_Customer که بر روی Customer تعریف شده و دسترسی به اطلاعات مشتری را محدود می کند.
کاربر A هم متعلق به RLS_Product و هم RLS_Customer است.
وقتی کاربر A به داده های گزارش دسترسی پیدا می کند، هم RLS_Product و هم RLS_Customer ارزیابی می شوند.
برای ارزیابی RLS_Customer، داده ها باید در رابطه محدود بین فروش و مشتری به اشتراک گذاشته شوند. این اشتراکگذاری ممکن است ناخواسته اطلاعات بالقوه محصولات را فاش کند.
بنابراین، Power BI اجازه نمی دهد این اشتراک گذاری اتفاق بیفتد و در عوض خطای زیر را ایجاد می کند:
“کاربر متعلق به چندین نقش “RLS_Product، RLS_Customer” است که دارای فیلترهای امنیتی هستند، که وقتی یکی از نقشها دارای فیلترهایی باشد که روی جدول “فروش” با SecurityFilteringBehavior=هر دو رابطه وجود دارد، پشتیبانی نمیشود.”
راه حل
یکی از راه حل های زیر را برای جلوگیری از این خطا اتخاذ کنید:
- در صورت امکان، هیچ کاربری را در چندین نقش RLS قرار ندهید. در سناریوی بالا، می توانیم نقش RLS دیگری ایجاد کنیم، به عنوان مثال. RLS_Product_Customer، که ترکیبی از فیلترهای RLS تنظیم شده در RLS_Product و RLS_Customer است. سپس، میتوانیم کاربر A را فقط به RLS_Product_Customer اختصاص دهیم و کاربر را از RLS_Product و RLS_Customer حذف کنیم.
- نقش های RLS را فقط در یک گروه منبع تعریف کنید. اگر لازم است یک کاربر به چندین نقش RLS تعلق داشته باشد، مطمئن شوید که تمام فیلترهای RLS تنظیم شده در نقش ها بر روی جداول از یک گروه منبع واحد تعریف شده اند. در سناریوی بالا، اگر بتوانیم RLS_Customer را در گروه منبعی که حاوی فروش و محصول است تعریف کنیم، میتوانیم از خطا جلوگیری کنیم.
دوره آموزشی هوش تجاری با Power BI »کلیک کنید« یک برنامه جامع است که بر توسعه مهارت در تجزیه و تحلیل دادهها، تجسم و گزارش سازی و گزارش دهی و دشبوردسازی با استفاده از ابزار Power BI تمرکز دارد.
سپاسگذاریم از وقتی که برای خواندن این مقاله گذاشتید
.
برای خرید لایسنس پاور بی ای Power BI کلیک کنید
.
برای مشاهده ویدیوهای آموزشی داده کاوی و هوش تجاری ما را در شبکه های اجتماعی دنبال کنید
Youtube Chanel :VISTA Data Mining
Aparat Chanel: VISTA Data Mining
Instagram Chanel: VISTA Data Mining
Telegram Chanel: VISTA Data Mining
Linkedin Chanel: VISTA Company