LesezeichenAbonnierenRSS-Feed abonnieren
marcw1a
Calcite | Level 5

Hallo,

 

- die Datengrundlage bildet ein Star-Schema mit einigen Dutzend Dimensionen
- hierauf wurde eine relationale Information Map (Proc Infomaps) generiert und dem Anwender über das WRS zur Verfügung gestellt
- der Anwender kann hier flexibel und dynamisch seine Berichte generieren
- die relationale InfoMap generiert einen PROC SQL incl. CREATE TABLE, führt diesen auf das Star Schema aus und zeigt die Daten im WRS an
- für einen bestimmten Anwenderkreis müsste auf diese Daten noch ein Geheimhaltungsalgorythmus angewendet werden

gibt es eine Möglichkeit, dieses generierte SAS-Dataset vor der Anzeige noch zu modifizieren (z.B. mittels Macro) ?

6 ANTWORTEN 6
AndreasMenrath
Pyrite | Level 9
Hi,

meinst du mit "Geheimhaltungsalgorithmus" dass nicht jeder Benutzer alle Zeilen der Tabellen lesen kann?

Falls ja, findest du hier Beispiele und die zugehörige Doku:
http://support.sas.com/kb/31/563.html
http://support.sas.com/documentation/cdl/en/birlpug/64020/HTML/default/viewer.htm#bookInfo.htm

Gruß Andreas
marcw1a
Calcite | Level 5

Hallo Andreas,

vielen Dank für deine Antwort, aber das ist leider nicht das, was ich suche.


Vielleicht muss ich mein Problem noch etwas genauer beschreiben:
das mittels Proc Sql erzeugte, dynamische Dataset soll in seiner Struktur bestehen bleiben, es sollen nur die Kennzahlen über einen Geheimhaltungsalgorithmus "verfälscht" werden. Es gibt von meiner Seite schon ein Macro, das über bestimmte Parameter (max. Veränderungsrate, Bleibewahrscheinlichkeit, Varianz ...) ein bestehendes SAS-Dataset "verfälscht", ich müsste nur vor der Anzeige Zugriff auf dieses durch die InfoMap (Create Table ... proc sql) erzeugte SAS-Dataset bekommen.

 

Gruß Martin

mfab
Quartz | Level 8

Hallo Martin,

 

ich sehe drei Möglichkeiten:

 

- Die Basisdaten bereits duplizieren und ggf. abändern, so dass dann in der IMAP per Row-Level-Security je nach User die echten oder die verfälschten Daten angezeigt werden.

 

- Falls das Verfälschen der Daten mit Parametern geschieht, könnte ein StoredProcess in die IMAP eingebunden werden, der je nach User die Parameter aus einer separaten Tabelle ausliest und mit den Daten verknüpft.

 

- Verwenden einer zweiten IMAP, die die Daten in den Kennzahlen verfäscht. Dann können beide IMAP's entsprechend für die User berechtigt werden.

 

Ich hoffe, ein Vorschlag hilft weiter 😉

Beste Grüße

Michael

marcw1a
Calcite | Level 5

Hallo Michael,

vielen Dank für deine Antwort.

der Anwender kann sich aus mehreren hundert klassifizierenden Merkmalen und weit über 100 Kennzahlen seinen Bericht über das WRS zusammenstellen. Der daraus resultierende Proc Sql bzw. das Result-Dataset hat somit eine dynamische Struktur.

- Möglichkeit 1: funktioniert nicht, da auch der Wert einer bestimmten Kennzahl (über die Summierung der dynamischen Merkmale) ein Parameter für die Geheimhaltung darstellt

- Möglichkeit 2: hört sich interessant an ! wie kann ich einen SP in eine IMAP einbinden und mit der Ergebnismenge des PROC SQL verknüpfen ?

- Möglichkeit 3: die Berechtigung der User an sich ist nicht das Problem, sondern die "Verfälschung" einer dynamischen Ergebnismenge.

 

Gruß Martin

mariusg
Obsidian | Level 7

Hi Martin,

 

exemplarisches Szenario zu Möglichkeit 2 :

 

EG-Projekt erstellt deine Logik (User A darf / User B darf nicht) und eine "Dummy" Tabelle. Diese wird in den Metadaten registriert z.B. einmalig mit proc metalib. 

(Wenn eine Metadatentabelle in einer IMap vorhanden ist, dann kannst du einen STP einfügen). Die registrierte Tabelle fügst du in das EG Projekt hinzu und anschließend den STP. Dann joinst du die Datenmenge mit deinen anderen Tabellen.

 

Du kannst dann z.B. auch mit &metauser den entsprechenden User abfragen und so deine Logik im STP aufbauen.

 

Nur mal als schnelle Antwort.

Viele Grüße

Marius

mfab
Quartz | Level 8

Hallo Martin,

 

ich muss gestehen, mit Proc Infomaps kenne ich mich nicht im Detail aus. IMAP's erstelle ich immer im Information Map Studio. Dort lässt sich ein STP zu einer IMAP hinzufügen, der ggf. auch mit Prompts arbeiten kann.

Ich könnte mir vorstellen, dass Du dort Deine Logik unterbringen kannst, bzw. dynamisch eine "Verfälschungstabelle" erzeugen kannst, die an die Ergebnisse gejoined wird. Ggf. kann diese Tabelle auch leer sein, wenn die Daten nicht abgeändert werden sollen.

 

Beste Grüße

Michael

sas-innovate-2024.png

Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.

Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.

 

Register now!

Diskussionsstatistiken
  • 6 Antworten
  • 1231 Aufrufe
  • 0 Kudos
  • 4 in Unterhaltung