#sql-server #ssas #mdx #row-level-security #multidimensional-cube
Вопрос:
Я попытался запустить многомерный проект с динамическим RLS. Я использовал образец для его реализации.
В моем примере сценария у меня есть детеныш, как показано ниже :
Я попытался написать правильный многомерный запрос для результата тестирования разрешения пользователей.
SELECT {[Measures].[Point Transaction Count],[Measures].[Amount],[Measures].[Balance]} ON 0,
NonEmpty ([Club].[Club].[Club].MEMBERS,([Users].[User Name].amp;[[MyDomain]a.ghasemi],[Measures].[User Permission Count])) ON 1
FROM [DynamicPointTransaction]
GO
Количество транзакций по Точкам | Сумма | Баланс | |
---|---|---|---|
ТестКлуб | 30 | 34151 | 99210 |
Этот результат верен, и когда я меняю имя пользователя, он хорошо работает в редакторе запросов SSMS.
Теперь моя проблема в динамическом RLS, когда я попытался задать запрос для динамического использования пользователями в браузере VS, я обнаружил ошибку для измерения разрешений.
Атрибут «Клуб» в измерении «Клуб» содержит сгенерированное выражение безопасности измерения, которое недопустимо.
Я создал роль с помощью DimesionData с разрешенным набором участников, как показано ниже :
NonEmpty (
[Club].[Club Id].[Club Id].Members,
(
StrToMember ("[Users].[User Name].amp;[" UserName () "]"),
[Measures].[User Permission Count]
)
)
Add membership, add read permission for cub and dimensions.
When browse with Role or users raise this error :
No different between Role and Users… error is stable.
When choice Admin users, I don’t have any error.