Некоторые таблицы размеров на моем складе:
DML
Site
Id bigint
Name nvarchar(256)
Primary key (Id)
DATA
SiteId Name
2 Site 2
3 Site A
DML
UserSite
Username nvarchar(256)
SiteId bigint
Primary key (Username, SiteId)
Foreign key (SiteId) referrences Site(Id)
DATA
Username SiteId
EMSUser1 2
EMSUser1 3
EMSUser2 3
Мой проект SSAS:
Я использовал эти две таблицы измерений в одном измерении в проекте BIDS, созданном с помощью мастера измерений.
Имена пользователей относятся к двум локальным учетным записям пользователей Windows на сервере SSAS, они являются членами локальных окон.
группа ReportBrowsers. Я создал роль для этой группы в BIDS и добавил выражение MDX на вкладку «Данные измерения»
для этого измерения в поле AllowedSet для атрибута имени пользователя:
STRTOMEMBER("[UserSiteSite].[Username].["+Trim(Mid( UserName, InStr(1, UserName, "\")+ 1,128))+"]")
Это измерение используется в кубе, который все обрабатывается и развертывается. Затем у меня есть отчет SSRS на основе этого куба.
Мое намерение:
То, что я пытаюсь сделать, это взять вошедшего в систему пользователя, в настоящее время просматривающего SSRS, и удалить часть " \" возвращаемой строки.
эффективно фильтровать результаты только по тем сайтам, для которых у имени пользователя есть запись.
Так что для EMSUser1 я должен видеть записи для обоих сайтов, но, по-видимому, он разрешает только первый («Сайт 2» с идентификатором 2)
Нет никаких признаков "сайта А", хотя в таблице фактов существуют записи для этого сайта.
Я пробирался через выпущенные Analysis Services 2008, пошаговую книгу, блоги и т. Д.
Я просто не могу ухватиться за внутреннюю работу, чтобы достичь своей цели.
Что я делаю не так?