2016-09-26 62 views
2

設置多維數據集後,我被要求使用用戶和他們可以看到的數據表添加動態安全性。SSAS OLAP多維數據集動態安全性。許多維度在一個角色

問題是我必須考慮3個不同的維度。 我決定使用事實表與noneEmpty函數計數。

NonEmpty([Dimension].[Hierarchy].members, 
    ([Measures].[Allowed Count], 
    [Users].[User].&[UserName] 
    ) 
) 

設置角色後,我已經有了喜歡的結果:

DIM1 | Dim2 | Dim3

1 | A | 300

1 | A | 320

1 | A | 340

1 | B | 300

1 | B | 320

1 | B | 340

它應該是:

Dim1 | Dim2 | Dim3

1 | A | 300

1 | A | 320

1 | B | 340

用於允許用戶訪問的數據存儲在表等

用戶名| Dim1Key | Dim2Key | Dim3Key

層次結構就像 每個Dim1包含每種類型的Dim2,其中包含每種類型的Dim3。

用戶只能在Dim1中訪問Dim2中的Dim3的給定成員。

有沒有這方面的MDX所以每個昏暗的一端連接的方式只是其各自的值

UPDATE:

經過一番研究,我已經有了這個查詢:

SELECT [Measures].[CC Count] ON 0, 

NonEmpty(
(
NonEmpty((Dim1.children), 
    ([Measures].[CC Count], 
    [Users].[User].&[userName] 
    )) 
    , 
NonEmpty((Dim2.children), 
    ([Measures].[CC Count], 
    [Users].[User].&[userName] 
    )), 
NonEmpty((Dim3.children), 
    ([Measures].[CC Count], 
    [Users].[User].&[userName] 
    )) 
    ) 
    ,([Measures].[CC Count], 
    [Users].[User].&[userName] 
    )) 
ON 1 
FROM [Cost Center] 

這給了我想要的結果,但我無法將它放入角色中的Dimensiom數據。有沒有辦法改變它?

回答

1

請嘗試創建一個新的隱藏維度,其中key屬性包含key1,key2和key3的組合鍵。你將不得不選擇一些NameColumn,但沒關係。所以選擇key1作爲名稱。除維鍵外,您不需要任何維度。

在多維數據集設計器的維度用法中,確保將此新維度連接到所有事實數據表以及提供CC計數度量的安全措施組。

然後在該維上創建基於角色的安全性。用戶將能夠看到所有維度的所有成員,但是這個新的組合鍵維度將確保他們不能看到他們不應該看到的事實行。這應該比單元安全性更好。

+0

感謝您的回覆。我正在實施你的想法,並有一個問題。這個新維度應該建立在安全表或主事實表的基礎上? – Zergister

+0

@Zergister嗯。如果它建立在所有3個鍵的交叉連接上,它會太大嗎?如果沒有,那就這樣做。如果是這樣,你將需要至少存在於任何事實表中的任何組合。 – GregGalloway

+0

那麼我只是得出了相同的結論:D – Zergister

相關問題