پیاده سازی سطح دسترسی بر روی صفحات پاور بی آی (Page Level Security)
یکی از چالش های ابزارهای Self Service BI همچون کلیک ویو ، کلیک سنس ، پاور بی آی و تبلو عدم امکان تعریف سطح دسترسی رویه صفحات می باشد ، البته که پیاده سازی این موضوع با خلاقیت و تکنیک قابل پیاده سازی می باشد ، به صورت پیش فرض این ابزارها امکان دسترسی رویه داشبورد و رویه رکوردهای داشبورد (Row Level Security) را مهیا می کنند.
در این مقاله ما می خواهیم پیاده سازی سطح دسترسی بر رویه شیت های داشبورد Power BI (Page Level Security) را بررسی و آموزش دهیم ، تا هنگامی که کاربری وارد داشبورد شد فقط به صفحاتی که دسترسی داده ایم ، دسترسی داشته باشد.(طبیعتا دسترسی رویه رکورد های داشبورد نیز یکی از سطوح دسترسی ما می باشد که خارج از آموزش در این مقاله می باشد).
داشبورد ما دارای صفحات فروش ، تحلیل مشتری ، بودجه و خرید می باشد و در تصویر زیر شما در حال مشاهده داشبورد فروش هستید .
همچنین در تصویر زیر شیت تحلیل مشتری که قسمتی از آن بر اساس RFM پیاده سازی شده است را مشاهده می کنید .
برای ایجاد سطح دسترسی رویه صفحات ما یکسری مراحل را طی می کنیم .
- در ابتدا جدولی ایجاد می کنیم و لیست صفحات داشبورد را در داخل آن وارد می کنیم ، اسم این جدول را Dim_page قرار دادیم . (ما این جدول را در داخل فایل Power BI ایجاد می کنیم طبیعتا شما می توانید در بانک اطلاعاتی یا فایل اکسل هم همین کار را انجام بدهید)
- در مرحله دوم جدولی را ایجاد می کنیم و لیست کاربران و دسترسی به صفحات را مشخص می کنیم ، این جدول را Dim_PageAccess قرار دادیم . (ما این جدول را در داخل فایل Power BI ایجاد می کنیم طبیعتا شما می توانید در بانک اطلاعاتی یا فایل اکسل هم همین کار را انجام بدهید)
- مرحله سوم این دو جدول را باهم ارتباط می دهیم همچنین نوع ارتباط را از نوع Both و گزینه Apply Security filter in both direction را انتخاب می کنیم.
- در ادامه ما تمام صفحات را Hide می کنیم و یک صفحه ای طراحی می کنیم به نام Intro که داشبورد تا باز می شود کاربر صفحه Intro را مشاهده خواهد کردو حرکت کردن بین صفحات از طریق این صفحه انجام میشود، در این صفحه ما یک اسلایسر رویه صفحه قرار دادیم و فیلد عنوان از جدول Page را داخل آن Drag & Drop کردیم و همچنین خاصیت آن را به حالت Single Selection قرار دادیم.همچنین یک Button رویه صفحه قرار دادیم و عبارت نمایش آن را به اسکریپت زیر تغییر دادیم تا داینامیک باشد.
Page Title = " رفتن به شیت "&SELECTEDVALUE(Dim_Page[PageName])
- در مرحله پنجم ما از قسمت Modeling و سپس Manage Role ، نقشی را تعریف می کنیم .
و سپس نقش مورد نظر را تعریف می کنیم.
- در مرحله آخر ما باید اکشن رویه دکمه را تعیین کنیم که با زدن آن به صفحه ی مربوطه رجوع کنیم. در ابتدا یک Measure تعریف کردیم .
Page Action = SELECTEDVALUE(Dim_Page[PageName])
و در ادامه Action مربوط به دکمه را در حالت Page Navigation قرار دادیم و Destionation را به صورت fx انتخاب کردیم و مژر Page Action را برای آن تنظیم کردیم.
تمام ! الان مرحله تست می باشد ، اگر داشبورد را در سمت Power BI Report Server پابلیش کنید هر کاربری که لاگین کند فقط صفحات خودش را مشاهده می کند یا در Power BI Desktop از تب Modeling گزینه View as را انتخاب کنید و تست کنید.
نکته ای که هست اسلایسر و دکمه در تمام صفحات باید قرار بگیرد.
دیدگاه خود را ثبت کنید
تمایل دارید در گفتگوها شرکت کنید؟در گفتگو ها شرکت کنید.