SQL Server 2016 Grundkurs: Administration

Proxy-Anmeldeinformationen und Proxy-Konten

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Was sind Proxy-Konten und wie können Sie Proxys für die Auftragsausführung sinnvoll nutzen? Diese und weitere Fragen klärt Daniel Caesar in diesem Video.
09:27

Transkript

In diesem Video möchte ich Ihnen zeigen, was Proxy-Konten sind, und wie Sie Proxys sinnvoll nützen können für die Auftragsausführung. Microsoft hat mit SQL SERVER 2005 diese Proxys eingeführt, mit dem Hintergrund, dass man Aufträge hat, ich gehe mal hier in einen klassischen Auftrag, zum Beispiel "Datenexport", was ja eine Integration Service-Paket ist, klicke mal doppel darauf, zu den "Schritten", "Bearbeiten", und hat jetzt das Thema, dass der SQL SERVER-AGENT, also im Grunde genommen das Benutzerkonto, das Benutzerdienstkonto, was hier benutzt wird, die oder das Ausführende in dem Fall ist. Jetzt steht da "Ausführen als", ich kann aber an der Stelle niemanden anders im Moment selektieren. Jetzt möchte ich, dass diese Ausführung sozusagen über diese "Proxys" erfolgt. Muss allerdings, bevor ich mir hier so ein Proxy einrichte für die SSIS-Paketausführung, ich gehe mal in den Dialog rein. Hier ja, nachher eine Anmeldeinformation auswählen, und hier macht es Sinn, dass man sich erstmal eine Anmeldeinformation hinterlegt. Das wurde ich im ersten Schritt machen, dass für diese Kette mal von vorn bis hinten durchspielen. Das bedeutet, ich gehe jetzt zum Knoten "Sicherheit", und dort gibt es "Anmeldeinformationen". Rechte Maustaste, "Neue Anmeldeinformationen", habe hier "Identität", gehe auf "Durchsuchung" und sehe, dass ich jetzt in den Dialog komme, wo ich einen Windows-Benutzer auswählen kann. Also nehme ich hier mal mein Verzeichnis. Nachdem ich jetzt hier das Verzeichnis eingestellt habe, also mein AD, wähle ich jetzt diesen Benutzer, gucke mal "SSIS", den habe ich natürlich im Vorfeld vorbereitet, im Active Directory also einen SSIS-User angelegt, Windows-Benutzer, "OK". So, ein Anmeldeinformationsname, das übernehme ich einfach mal so, "SSIS_User". Ein Kennwort. Und bestätige das erstmal mit "OK". Jetzt habe ich hier ein Credential, als eine Anmeldeinformation angelegt. Ich vergleiche das immer so ein Stück so in meinen Seminaren, dass ich sage: Wenn ich in SQL SERVER rein will, ich bin als Windows-User angemeldet, brauche ich einen Login im Connect recht komme ich rein. Jetzt kann ich Scripte ausführen, TSQL, kann agieren, je nach dem, was ich für Rechte im SQL SERVER habe. Jetzt möchte ich aber eine Aktion in SQL SERVER anlegen, in dem Fall handelt es sich um ein Agent, um einen Auftrag, den ich natürlich jetzt auch angelegt haben kann, ganz klar, und wo ich sage in dem Auftrag wird ein Integration Service Paket ausgeführt. Integration Service ist aber ein eigener Dienst. Das heißt, es ist, wenn man es betrachtet an sich außerhalb des Hochkomma SQL Servers, also der Datenbank-Engine. Jetzt wird interagiert nach außen. So, und um das auszuführen, dafür habe ich diese Proxys. Und in diesem Fall gehe ich jetzt zu dem Knoten "SSIS-Paketausführung", rechte Maustaste, "Neue Proxy", "SSIS_Proxy" sage, und das brauche ich jetzt nicht mehr separat machen gegenüber Subsystem Integration Services. Warum brauche ich es nicht mehr einwählen, weil ich nicht hier oben begonnen habe, rechte Maustaste auf Proxys zu gehen, sondern direkt auf SSIS-Paketausführung, demzufolge ist es ausgewählt, bestätige das mit "OK". Halt, dafür noch der Anmeldename. Wähle jetzt mein Credential aus, was jetzt existiert, also mein Windows-User im AD, der dahinter liegt, "Proxy", "SSIS-Paketausführung", aktualisiere das, dass wir sehen, der Proxy ist da. Ich habe diesen Datenexport ja in der Vergangenheit schon ausgeführt. Rechte Maustaste, schauen wir mal die Verlaufsinformationen dazu an, hier war dann die erfolgreiche Ausführung, und kann hier sehen, wer war bei den letzten Ausführungen der ausführende Benutzer. Wenn wir jetzt das ändern wollen, gehe ich also auf diesen Job, auf die "Schritte", auf "Bearbeiten", und habe jetzt die Möglichkeit, was vorhin nicht ging, bei "Ausführen als" hier mein Proxy einzugeben und das Ganze mit "OK" zu bestätigen. Dieser Auftrag lief vorhin korrekt, nachdem wir die Berechtigung für das SQL-Server-Agent-Konto auf Dokumente gesetzt hatten. Jetzt ändert sich auf einmal der User. Jetzt ist es dieser SSIS-User, der das ausführt. Das heißt, wenn ich jetzt sage rechte Maustaste "Auftrag starten bei Schritt", schauen wir mal was passiert, gibt es ganz klar wieder eine Fehlermeldung. Rechte Maustaste, "Verlauf anzeigen", um zu schauen, was ist los, hier war es doch erfolgreich, hier jetzt nicht mehr. Und jetzt sehe ich natürlich sehr schnell den Grund. Jetzt wird nämlich dieser Auftragsschritt im Kontext eines anderen Users ausgeführt. Das heißt, jetzt habe ich genau die Situation, dass nicht nachher 500 Aufträge in meinem System vorhanden sind, die Dateien kopieren, ETL-Prozesse ausführen, Wartungspläne machen, also viele Dinge, viele Jobs, die laufen, und mein SQL-Server-Agent-Konto, immer dieses Konto das Ausführende ist und überall berechtigt werden muss, und natürlich immer mächtiger hinsichtlich der Rechte auch wird. Jetzt kann ich sagen "OK", ich brauche ja für die Geschichte gar nicht das Agent-Konto, sondern ich habe ja einen separaten Benutzer - SSIS, da ist er, den SSIS-User, berechtige den, bestätige das, gehe zu meinem Auftrag, sage "Auftrag starten bei Schritt" für das Ganze noch mal aus, bekomme abermals einen Fehler. So, jetzt schauen wir noch mal nach, was jetzt die Ursache sein kann. Wieder die Verlaufsinformationen anzeigen, mal in die Details reingehen, und ja, jetzt können wir hier wieder gucken, bisschen großer vielleicht das Ganze machen, ist irgendetwas erkennbar anhand des Fehlers, Fehler bei der Anmeldung für den Benutzer. So, kurz rüber passieren lassen, was macht dieser Job? Der macht einen Export, das heißt, der muss ja letztendlich aus dem SQL SERVER, aus der Datenbank AdventureWorks, aus der Tabelle die Daten holen. Hat er ja überhaupt einen Login? Ist er überhaupt berechtigt in der Datenbank als Datenbankbenutzer? Gehört er zur Rolle Reader oder kann in der Tabelle lesen? Nein, das ist nicht der Fall. Also muss ich diese Schritte jetzt oben setzen. Dazu gehe ich zum Knoten "Sicherheit", zu meiner "Anmeldung", hier ist er noch gar nicht hinterlegt. Als erstes verpasse ich ihm eine Anmeldung. "Suchen", Pfad, Domäne, "SSIS", "Benutzerzuordnung", "AdventureWorks", ich packe ihn jetzt mal in die Rolle DataReader, das heißt, damit hat er Zugriff auf alle Tabellen. So, "Aufträge", rechte Maustaste, "Auftrag starten bei Schritt". Schauen wir uns jetzt an, ob das funktioniert, oder überhaupt immer noch eine Fehlerursache vorliegt. Man sieht, es wird jetzt von der Konfiguration natürlich wesentlich aufwendiger, "Verlauf anzeigen". So, "Beschreibung", man sieht aber auch, dass das Fehlerfeld schmaler geworden ist, also dass es hier weniger drin steht. Und jetzt schauen wir noch mal, "C/Software/Export". Das heißt auf der einen Seite, war jetzt ein Fehler oder eine Problemquelle, das auf den Ordner "Dokumente", wo das Integration Services-Paket liegt, kein Zugriff war. Der zweite Fehler war, dass kein Zugriff auf die Datenbank, also um die Daten zu lesen aus der Tabelle. Dritter Fall, er soll ja ein File erstellen unter C Software. Hat er dort die Rechte? Das hat er ja natürlich auch nicht. Das heißt, ich muss jetzt unter C Software, hier, entsprechend diesem Benutzer natürlich auch unter "Sicherheit" berechtigen, der Agent steht ja nicht drinnen, also ich sage jetzt "Bearbeiten", "Hinzufügen", "SSIS", selektiere das Ganze, gehe auf "OK", sage "Vollzugriff", "OK", "OK". So, und jetzt kommt der Schritt , dass ich diese Ausführung noch mal letztendlich mache, diesen Auftragsschritt starte, und schaue, ob dies diesmal erfolgreich ausgeführt wird. Ja, das wird es. In diesem Film haben Sie gesehen, wie Sie mit Hilfe von Proxys und speziellen Credentials im SQL SERVER dafür sorgen können, dass die Auftragsschritte im SQL-Server-Agent gegebenenfalls im Kontext ganz bestimmte Benutzer ausgeführt werden können. Ob das ein PowerShell-Auftrag wäre, ein Command Shell oder eine Integration Service-Paket. Sie haben die Möglichkeit, jeweils Proxys anzulegen und spezielle Windows-Benutzer für die funktionalen Schritte zu hinterlegen.

SQL Server 2016 Grundkurs: Administration

Erlernen Sie die Administration des SQL Server 2016 vom Umgang mit dem Management Studio bis zu Automatisierung und Monitoring.

6 Std. 10 min (60 Videos)
Derzeit sind keine Feedbacks vorhanden...
Hersteller:
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:08.05.2017

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!