ایجاد دسترسی Dynamic Row Level Security برای پروژه Multidimensional OLAP زمانی که نیاز دارید تعداد کاربرهای زیادی به پروژه BI شما دسترسی داشته باشند کاربرد فراوانی دارد.
در حالت های معمول با تعریف Role و ایجاد Member که از جنس لاگین ویندوزی بودند میتوانستیم به یک یا چند کاربر از طریق Active directory و Domain دسترسی RLS بدهیم. این کار ضریب خطای بالا و از طرفی زمان بر است. راه حل سریع تر و ایمن تر DRLS است.
در این مقاله مراحلی که برای این پیاده سازی گذرانده شد رو با شما به اشتراک میگذارم.
فرض بر این است که Cub بطور صحیح ایجاد شده و در حال کار کردن است.
در اینجا میخواهیم بر اساس Dimension project کاربران دیتا ها را مربوط به پروژه خود را مشاهده کنند.
حالا به دو چیز دیگر نیازمندیم :
- به یک جدول که Account ها را برای ما مشخص کند.
- و جدول دیگری که بگوید کدام Account به کدام پروژه دسترسی دارد.
این کار با استفاده از رابطه AccountId و ProjectId امکان پذیر است :
باید دقت داشت که جدول Fact / Measure با سطوح دسترسی مد نظر ایجاد و یک Dimension برای Account ها که منبع اصلی فیلتر ما هستند ایجاد نموده.
ایده ای که در اینجا وجود دارد این است که در زمان اتصال کاربر ابتدا AccountId او گرفته میشود و بعد گزارش به او نمایش داده میشود.
حالا باید رل داینامیک را ایجاد کرد.
با باز کردن Solution Explorer و کلیک راست بر روی رل یک رل جدید ایجاد کرده.
https://virgool.io/@AmirhosseinGhasemi/dynamicrowlevelsecurity-jmcgs53chhob