دانش متفرقه SSAS

*در هنگام استفاده از Partition در جداول می توانید بجای اشاره به تاریخی مشخص از عبارت زیر جهت شناسایی روز جاری استفاده کنید. به این ترتیب دیگر نیازی به سرکشی و تغییر دوره ای پارامتر نیست. 

Date.From(DateTime.LocalNow())


let

    Source = #"SQL/ ;ShilaDWH",

    dbo_Fact_SD_SaleHeader= Source{[Schema="dbo",Item="vwFact_SD_SaleHeader"]}[Data],

    #"Filtered Rows" = Table.SelectRows(dbo_Fact_SD_SaleHeader, each [EffectDateKey] <  Date.From(DateTime.LocalNow()) )

in

    #"Filtered Rows"

*برای اعمال حقوق دسترسی RLS در SSAS نکات زیر را درنظر بگیرید:

- کاربر با دسترسی Administrator امکان تست RLS را نداشته و همواره به تمامی رکوردهای اطلاعاتی دسترسی دارد.

- دسترسی به SSAS صرفا با Windows Authentication مقدور است

- مطابق تصویر زیر نکته بسیار مهم این است که تیک مقدار زیر حتما باید زده شود:

Log in using these credentials, but then try to impersonate the user viewing the report

-در هنگام برقراری ارتباط بین جدول اصلی کنترلی دسترسی با اولین جدول تیک Row Level Security زده شود و جهت دسترسی دوطرفه Both درنظر گرفته شود.

-کافیست که یک جدول شامل یک فیلد شامل نام کاربر با ذکر دامنه و یک فیلد شامل کلید اصلی کنترل دسترسی در آن تعریف شود

-در بخش Roles از محیط SSDT (Visual Studio) به روش زیر عمل کنید:

-در ادامه در بخش Members نیز باید کاربر یا گروه کاربری مورد نظر را اضافه کنید، به ترتیب زیر:

*رفع خطای زیر هنگام Deploy گرفتن روی پروژه SSAS Tabular

 An unexpected error occurred (file ‘pcserialize.cpp’, line 1535, function ‘ASDatabase::Serialize’)

در مسیر زیر فایل  msmdsrv.ini را ویرایش کرده و عبارت <Gen2ServerKey>1</Gen2ServerKey> حذف نمایید

C:\Program Files\Microsoft SQL Server\MSAS15.MSSQLSERVER\OLAP\Config

*اگر خواستید در محیط Query Designer در SSAS یا Report Builder پارامتر چند گزینه ای را انتخاب کنید از دکمه Enable Multi Value Parameters که بالای سمت راست صفحه است استفاده کنید