Berichtsdienst- und Anwendungsrolle

25

Erstes Plakat, lange Zeit lauert hier. Wie kann die Anwendungsrolle in einem Bericht am besten aktiviert werden?

Ich habe verschiedene Dinge ausprobiert und bis jetzt funktioniert die einzige Methode darin, den Aufruf der Anwendungsrolle wie folgt einzubetten:

EXEC sp_setapprole 'REPORTZ', 's3cr3t';
select *
from mytable
where ID < 10000

im Datensatz. Es funktioniert ... aber nicht nach meinem Geschmack (sicherlich nicht in der Form, die ich in die Produktionsumgebung einbauen möchte).

Ich würde es vorziehen, wenn ich die Aktivierungslinie für die Anwendungsrolle zur Laufzeit entweder über benutzerdefinierte Assemblys oder wahrscheinlich über eine Art "Server-Hook" im Reporting Service irgendwie "hijacken" oder "einschleusen" könnte (was ich in beiden Fällen nicht weiß, wie) )

Sehr geschätzt für Ihre Zeit + freundliche Aufmerksamkeit.

YS.

YS.
quelle
2
Sie können von hier aus mit msdn.microsoft.com/en-us/library/aa237582(v=SQL.80).aspx beginnen, um zu verstehen, wie der Reporting Service erweitert wird (Code einschleusen , der die Anwendungsrolle festlegt), aber ich würde diesen Kommentar nicht akzeptieren
Abhängig davon, wie Benutzer auf diesen Bericht zugreifen, können Sie Anmeldeinformationen für Berichtsbenutzer in den Datensatz einbetten und dann die Anmeldeserverseite für SQL so einrichten, dass sie über eingeschränkte Berechtigungen verfügt.
DForck42
Hallo DForck - das gesamte System war auf Approle aufgebaut und wir möchten, dass es so bleibt.

Antworten:

3

Ich sehe ein paar Möglichkeiten, wie dies getan werden könnte, ohne auf etwas übermäßig Fantasievolles zurückzugreifen.

  1. Die erste Möglichkeit wäre, die integrierte Windows-Authentifizierung zu verwenden und den Gruppen, die Benutzer der Anwendung darstellen, Berechtigungen zuzuweisen.

  2. Sie könnten Rollen erstellen, die gewährt werden könnten, und dann set roledie Rolle in Ihrem Code in der Datenbank übernehmen. Auf diese Weise übergeben Sie kein Kennwort und authentifizieren zuerst die Anwendung.

Der erste Vorteil besteht darin, dass in einer AD-Domäne leicht verwaltet werden kann, wer Zugriff auf die Anwendung hat. Das Management wäre relativ einfach. Die Hauptnachteile wären, dass es nur Fälle gibt, in denen integrierte Authentifizierung sinnvoll ist und Sie die integrierte Authentifizierung durchgehend unterstützen müssen. Außerdem erfordert jeder Hop eine 3-Wege-Authentifizierung (zwischen Server, Client und KDC).

Der Vorteil des zweiten ist, dass es wahrscheinlich am einfachsten ist, sich einzuschleichen, und es werden keine Sicherheitsinformationen über das Netzwerk angezeigt, und es funktioniert in Fällen, in denen die integrierte Authentifizierung nicht gut funktioniert.

Ich würde beide Ansätze ausprobieren, bevor ich versuche, den Berichtsservice zu erweitern. Wie der Kommentar andeutet, ist http://msdn.microsoft.com/en-us/library/aa237582%28v=SQL.80%29.aspx möglicherweise hilfreich und funktioniert, ist jedoch konzeptionell komplexer als der Versuch, Rollen zu verwalten direkt.

Chris Travers
quelle