2017-02-06 47 views
0

我有一個包含銷售數據的SSAS多維數據集。一個維被稱爲部,看起來是這樣的: 1級:部門SSAS中的維度安全性

等級2:成本中心

另一個層面是這樣的: 1級:客戶端

等級2:AccountNo

級別3:發票

某些用戶應該只能看到特定的成本中心。這已經解決了創建維度部門的角色和維度數據訪問權限的問題。這到目前爲止效果很好。

現在我的經理已經表示,限制訪問的用戶不應該被允許查看那些與有限用戶的成本中心沒有業務往來的客戶的名字。

所以我需要限制對維度客戶端的訪問。但是這不是一件容易的事情,因爲有成千上萬的顧客,而且有一天顧客可以與另一個新的成本中心做生意。客戶也可能擁有多個屬於不同成本中心的賬戶。

我在這裏需要一些關於我的選項的輸入。 某種子多維數據集是一個選項,還是一個新的多維數據集(聽起來有點超過頂部)?另一種選擇是在使用成本中心,帳戶和發票的客戶維度中創建另一個層次結構。這必須消除客戶級別,因爲客戶可以擁有多個屬於不同成本中心的賬戶。

任何輸入歡迎,我不需要精確的解決方案,但指導...

回答

0

好消息是,你可以在維度安全做到這一點。

您必須爲這些用戶設置角色。在VS中角色的維度數據選項卡中,有一個高級選項卡。在這裏您可以輸入MDX,返回用戶可以看到的一組維度成員。

有不少惱人的陷阱與維度安全性:

  1. 確保您的安全設置在立方體維度,而不是數據庫尺寸(他們都會在下拉菜單中列出下降在頂部,所以很容易選擇錯誤的實例)。
  2. 在您的MDX表達式中,只能使用屬性層次結構,而不能使用「用戶」層次結構。否則你會得到奇怪的錯誤。

你「允許的成員集」爲客戶維度表達應該是這樣的:

EXISTS([Client].[An attribute hierarchy].Members, 
{A set of cost centers the user is allowed to see}, 
"Name of a measure group that will have a non-NULL value if the client has 
had dealings with the cost centre") 

舉個例子,表達我想出了檢查這對我的工作立方體(限制客戶購買特定品牌的人)是:

EXISTS([Customer].[Customer Key].Members,[Product].[Brand].&[MH],"OrderItems") 
+0

它的工作原理!謝謝! – user88139