خانه / آموزش Power BI بابازاده / درس شصت و هشتم – RLS

درس شصت و هشتم – RLS

RLS

این واژه مخفف عبارت Row Level Security می باشد. کاربرد RLS در میزان دسترسی کاربران برای مشاهده اطلاعات  می باشد.

به مثال زیر توجه کنید. فرض کنید جدول فروش را به جدول مکان متصل کرده ایم و relation برایشان ایجاد کرده ایم. در مدل RLS باید چند جدول اضافی داشته باشید. یک جدول برای تمام کاربرانی که می خواهند وارد داشبورد شوند. در مثال ما هر کاربر فقط می تواند اطلاعات مربوط به یک کشور را مشاهده کند بنابراین یک جدول دیگر به نام کاربر-کشور ایجاد می کنیم. که نام کاربر در کنار نام کشوری که دسترسی باید داشته باشد را می نویسیم. سپس باید ارتباط بین این جداول را مشخص کنیم.

relation

ارتباط جدول کاربر – کشور هم باید با جدول مکان برقرار کنیم این ارتباط به صورت n  به ۱ می باشد که باید به یک ارتباط دو طرفه شکسته شود.

relation

مراحل پیاده سازی RLS

روی سروری که report server نصب می باشد ، ابتدا وارد control panel شوید و تعدادی کاربر تعریف کنید. اگر تعداد کاربران زیاد است بهتر است گروه بندی هم انجام دهید.

اگر سرور تحت دامین می باشد نیازی نیست که اینجا یوزر تعریف کنید و در واقع یوزرها از قبل تعریف شده هستند و فقط باید تنظیمات را برایشان انجام دهید. بعد از تعریف کردن کاربران باید در پاور کویری یک جدول بسازید که سرستون ها برابر با userID و UserName باشند. در شکل زیر سه کاربر تعریف کرده ایم. فرمتی که در report server  استفاده می شود به این ترتیب است : Domain\UserName

enter data

جدول کاربر – کشور را مطابق شکل زیر ایجاد می کنیم که هر کاربر کدام کشور را دسترسی دارد.

enter data

حالا باید دیتا مدل را رسم کنیم که به شکل زیر می باشد.

data model

دقت کنید که ارتباط جدول کاربر – کشور را با جدول کشور دو طرفه قرار دهید و حتما تیک مورد Apply security filter in both directions را بزنید.

edit relationship

مرحله بعدی در report view تب modeling از قسمت manage role یک role با هر نامی که می خواهید تعریف کنید که ما در اینجا RLS گذاشتیم. roleها خاصیت فیلترینگ دارند یعنی به ازای هر role که تعریف می کنید می توانید فیلترهایی روی دیتا تعریف کنید.  

manage roles

در جدولی که سه کاربر را در آن گذاشته بودیم UserName را فیلتر کن، برمبنای خروجی تابع UserName()

این یکی از توابع پرکاربرد داخلی خود dax میباشد که می تواند کاربری که وارد report شده را تشخیص دهد. در واقع با استفاده از این تابع می توانیم متوجه شویم که کدام کاربر در حال مشاهده گزارشات است.

manage roles

برای اینکه ببینید role که تعریف کرده اید درست کار می کند یا خیر به تب modeling رفته و گزینه view as roles را بزنید برای اینکه role مورد نظر را چک کنید و در قسمت other user نام role را بنویسید. و تیک آن role که تعریف کرده بودید را بزنید که در مثال ما نامش RLS می باشد.

view as roles

بعد از ساختن این فایل save as power bi report server را بزنید تا در report server قرار بگیرد. باید تنظیمات دسترسی به فایلها و به roleها را با یوزر ادمین انجام بدهید. در کل یوزرهایی که در گروه ادمین هستن می توانند تنظیمات را انجام دهند. با یوزر ادمین وارد power bi report server شوید و از فولدر home روی سه نقطه کنار RLS کلیک کرده و گزینه manage  را بزنید.

report server

و از سمت چپ صفحه گزینه row level security را بزنید. در اینصورت اگر در فایلتون role تعریف کرده باشید در اینجا نشان می دهد. در این صفحه add member را بزنید و در کادر نام یوزر مورد نظر را نوشته و role مربوطه را تیک بزنید. و به همین ترتیب همه یوزرها را به role مورد نظر منتصب کنید.

add member

دقت کنید اگر بجای یوزر ادمین با یک یوزر دیگر وارد power bi report server شوید ممکن است با خطای زیر مواجه شوید.

error

یعنی اجازه نمی دهد فولدر home را ببینید. بنابراین باید با یوزر ادمین در power bi report server در فولدر home دکمه manage folder را بزنید و گزینه Add group or user را بزنید و یوزری که با خطا مواجه شده بود را تنظیم کنید که بتوانند فولدر home را بصورت browser ببینند.

یعنی ابتدا باید دسترسی کاربران به فولدر home را مشخص کنیم و بعد از آن دسترسی گزارشات را درست کنیم.

role assignment

 

درباره‌ی المیرا فرمانی

Avatar

همچنین ببینید

line chart

ویژگی های نسخه power bi report server may2020-بخش سوم

دو مورد از ویژگیهای جدید ورژن may2020 عبارت است از Dual axis for line charts و Rectangle select for visuals که در اینجا توضیح می دهیم.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

معادله امنیتی (فقط عدد بنویسید) *