Ich habe einen Würfel in SSAS 2012 mit ungefähr 30 Dimensionen, von denen eine ist Company
.
Die Company
Dimension enthält eine Liste von Unternehmen, von denen sich mehrere hundert im Cube befinden. Unser Sicherheitsmodell erfordert, dass Benutzer nur für die Company
Werte sichtbar sind, denen sie zugewiesen wurden.
In unserer SQL Server-Umgebung steuern wir diesen Zugriff über eine Reihe von Funktionen, die JOIN
in VIEW
s beschrieben sind. Die Funktionen geben eine Tabelle mit allen Company
Werten zurück, die zum Filtern der Ergebnisse verwendet wird.
Zum Beispiel:
CREATE VIEW dbo.FakeView
AS
SELECT d.*
FROM FunctionToGetAccess(SYSTEM_USER) f
INNER JOIN DataTable d
ON d.CompanyID = f.CompanyID
Gibt es für mich eine Möglichkeit, diese Logik oder eine ähnliche Logik auf die Sicherheit auf Dimensionsebene in SSAS zu portieren?
Ein paar Anmerkungen:
- Der Würfel wird über Nacht wieder aufgebaut
- Die Sicherheit muss nicht stündlich aktuell sein, sondern sollte während der Cube-Verarbeitung über Nacht erneut verarbeitet werden
- Ich würde es dringend vorziehen, die Liste der Benutzer und zugelassenen Clients nicht in eine Tabelle oder Dimension einfügen zu müssen