2012-04-02 15 views
1

Wie lege ich die Berechtigung für die Funktion set-session-field() in MarkLogic für den Benutzer der Anwendung fest? Ich kann nicht scheinen, diese Informationen in der Marklogic-Dokumentation zu finden und ich zur Zeit die folgenden Fehlermeldung erhalten, wenn ich versuche, diese Funktion zu nutzen:MarkLogic-Privilegeinstellung

SEC-priv: xdmp: set-session-Feld („myfield“, "myValue „) - Notwendigkeit Privileg: http://marklogic.com/xdmp/privileges/xdmp-set-session-field in /my_xquery_file.xqy, auf 48: 6 [1,0-ml]

thx

ps Ich habe diese gefunden: OK, für alle anderen, die diese Informationen benötigen, habe ich sie im MarkLogic-Dokument "Grundlegendes zum und Verwenden des Sicherheitshandbuchs" auf Seite 28 gefunden. Öffnen Sie das MarkLogic-Verwaltungsfenster in Ihrem Browser. Gehe zu Konfigurieren-> Sicherheit-> Berechtigungen ausführen; Scrollen Sie nach unten, um die gewünschte Funktion/Berechtigung zu finden, und klicken Sie auf die jeweilige Funktion/Berechtigung. Auf dem nächsten Bildschirm überprüfen Sie den app-user, wenn Sie möchten, dass Ihre xquery-Skripte die Funktion ausführen. Meine App kann jetzt Daten in Benutzersitzungen speichern (set-session-field privilege).

+0

In der Frage gefragt und beantwortet. –

Antwort

1

Ja, die Antwort, die Sie selbst geben, ist korrekt.

Ein Link zur PDF-Kopie dieses Handbuchs finden Sie hier: http://community.marklogic.com/docs (direkter Link: http://community.marklogic.com/pubs/5.0/books/security.pdf). Die durchsuchbare Docs-Site ist ebenfalls bemerkenswert. Es kann hier gefunden werden: http://docs.marklogic.com/5.0doc/docapp.xqy (direkte Verbindung zum Abschnitt "Execute Privileges": http://docs.marklogic.com/5.0doc/docapp.xqy#display.xqy?fname=http://pubs/5.0doc/xml/security/execute.xml).

Beachten Sie jedoch, dass das Sicherheitsmodell von MarkLogic rollenbasiert ist. Sie weisen die Berechtigung "Ausführen" einer Rolle zu, und der Benutzer, mit dem Sie sich authentifizieren, muss diese Rolle haben. Wenn Ihr Benutzer also die App-Benutzerrolle hat, ist das obige korrekt.

HTH!

+0

Also ich denke, ich muss sicherstellen, dass jeder, der sich bei meiner Anwendung anmeldet, jetzt die App-Benutzerrolle hat. Vielen Dank. – kalinma

1

Anstatt alle Benutzer mit der app-user Rolle gibt die Möglichkeit, Sitzungsfelder zu erstellen, können Sie auch eine Bibliothek Funktion betrachten erstellen, die (für bestimmte Benutzer vielleicht) bestimmte Arten von Sitzungsfeldern erstellt und amp, die zu einer Rolle funktionieren das kann Sitzungsfelder erstellen. Mit Verstärkern können Sie Berechtigungen vorübergehend für einen bestimmten Funktionsaufruf erhöhen. Sie ermöglichen es einem Benutzer, im Kontext einer Anwendung privilegierte Dinge zu tun, ohne diesem Benutzer das pauschale Recht zu geben, diese Aufgabe in jedem Kontext auszuführen. Sie können mehr über Verstärker in Abschnitt 5.2 der oben genannten Understanding and Using Security Guide lesen.