{"id":617,"date":"2018-07-20T00:40:44","date_gmt":"2018-07-19T22:40:44","guid":{"rendered":"https:\/\/staging.sql.marcus-belz.de\/?p=617"},"modified":"2026-05-07T02:15:26","modified_gmt":"2026-05-07T00:15:26","slug":"ssis-vs-transact-sql-identitatswechsel","status":"publish","type":"post","link":"https:\/\/staging.sql.marcus-belz.de\/?p=617","title":{"rendered":"SSIS vs. SQL &#8211; Identit\u00e4tswechsel"},"content":{"rendered":"<h2>\u00dcberblick<\/h2>\n<p><strong>SQL Server Integration <\/strong>Services (SSIS) ist ein \u00e4u\u00dferst m\u00e4chtiges Toolset f\u00fcr die Entwicklung von ETL-Strecken. Es gibt viele gute Gr\u00fcnde, die f\u00fcr einen Einsatz von SSIS sprechen. Es gibt derer aber auch gen\u00fcgend, die dagegen sprechen. Beschr\u00e4nken wir uns auf den Microsoft Produkt Stack, dann kommt als Alternative f\u00fcr die Entwicklung von komplexen ETL Strecken (im Wesentlichen) nur noch Transact-SQL (T-SQL) in Frage.<\/p>\n<p>Dieser Artikel geh\u00f6rt zu einer <a href=\"https:\/\/staging.sql.marcus-belz.de\/?p=614\">Serie von Artikeln<\/a>, die wichtige Entscheidungskriterien f\u00fcr die Wahl der richtigen Technologie(n) \u2013 SSIS und\/oder T-SQL \u2013 beleuchten.<\/p>\n<p>Wird ein SQL Agent Job gestartet, dann werden die einzelnen Stepps in dem Job standardm\u00e4\u00dfig in dem Security Kontext des Service-Accounts von dem SQL Server Agent ausgef\u00fchrt.<\/p>\n<p>Bei der Installation von SQL Server Agent ist ein Service Account anzugeben, unter dem der Dienst <strong>SQL Server Agent<\/strong> gestartet werden soll. Der Benutzer hat die Wahl zwischen der Angabe eines expliziten Kontos und der Auswahl des lokalen Systemkontos <strong>NT-AUTORIT\u00c4T\\System<\/strong>.<\/p>\n<p>Mit der Auswahl des Kontos verf\u00fcgt der angegebene Service Account \u00fcber einen Satz an Berechtigungen, die sehr wahrscheinlich nicht f\u00fcr alle SQL Server Agent Jobs entweder ausreichend oder erforderlich sind.<\/p>\n<p>So verf\u00fcgt das lokale Systemkonto <strong>NT-AUTORIT\u00c4T\\System<\/strong> \u00fcber umfassende Berechtigungen an lokalen Ressourcen und ist Mitglied der Windows-Gruppe <strong>Administratoren<\/strong>. SQL Server Agent Jobs k\u00f6nnen auf diesem Weg auf Ressourcen zugreifen, die f\u00fcr die Ausf\u00fchrung nicht erforderlich sind und die ggf. sogar vor unbefugtem Zugriff zu sch\u00fctzen sind. Auf der anderen Seite hat das Systemkonto in der Regel keine oder keine ausreichenden Berechtigungen an File Shares, Datenquellen etc.<\/p>\n<p>Nach dem <strong>need-to-know-Prinzip<\/strong> sollte der Benutzer, unter dem ein Job ausgef\u00fchrt wird, nur \u00fcber die erforderlichen Berechtigungen verf\u00fcgen, die f\u00fcr die Erledigung der Aufgabe \u2013 hier das Ausf\u00fchren des SQL Server Agent Jobs \u2013 erforderlich sind.<\/p>\n<p>Da in dem SQL Server Agent regelm\u00e4\u00dfig zahlreiche Jobs konfiguriert werden, die alle sehr unterschiedliche Aufgaben zu erledigen haben und daf\u00fcr unterschiedliche Ressourcen ben\u00f6tigen, ist es nicht m\u00f6glich den Service Account nach dem need-to-know-Prinzip mit den passenden Rechten auszustatten.<\/p>\n<p>Microsoft bietet als L\u00f6sung f\u00fcr dieses Problem den <strong>Identit\u00e4tswechsel<\/strong> zur Laufzeit an. Der technische Fachbegriff hierf\u00fcr ist die <strong>Impersonierung<\/strong>. Die Impersonierung erfolgt auf der Ebene eines SQL Agent Job Stepps, in dem ein SSIS Paket auszuf\u00fchren ist, durch Angabe eines sogenannten <strong>Proxy-Users<\/strong>. Dieser wird im SQL Agent in dem Order <strong>SQL Server Agent | Proxies | SSIS Package Execution<\/strong> erzeugt und referenziert einen Anmeldeinformationsnamen (<strong>Credential<\/strong>-Objekt) einer SQL Server Instanz, der in dem Ordner <strong>Security | Credentials<\/strong> der jeweiligen Instanz zu erzeugen ist. Mit dem Anmeldeinformationsnamen ist ein Datenbank-Login (SQL Server Authentifizierung oder Windows Authentifizierung) verbunden, der entsprechend den Anforderungen in der Datenbank, Fileshares, etc. zu berechtigen ist.<\/p>\n<p>Alle Artefakt-Typen, die als Stepp konfiguriert werden k\u00f6nnen, unterst\u00fctzen die <strong>Run As<\/strong> Property, au\u00dfer der Typ <strong>Transact-SQL Script<\/strong>. ETL-Strecken, die ausschlie\u00dflich auf der Basis von Transact-SQL erstellt wurden, k\u00f6nnen daher nicht \u00fcber den SQL Server Agent impersoniert werden.<\/p>\n<p>ETL-Strecken, die als Startpunkt \u00fcber ein SSIS Paket verf\u00fcgen, k\u00f6nnen \u00fcber den SQL Server Agent impersoniert werden. Die Verwendung eines SSIS Paketes als Startpunkt einer ETL-Strecke bedeutet nicht zwangsl\u00e4ufig, dass die komplette ETL-Strecke in SSIS realisiert werden muss. Ebenso gut kann die ETL-Strecke auf der Basis von Transact-SQL realisiert werden. Die Skripte, Stored Procedures, Stored Functions etc. sind in diesem Fall \u00fcber SQL Command Tasks in einem SSIS Paket auszuf\u00fchren.<\/p>\n<h2>Fazit<\/h2>\n<ul>\n<li>Sofern f\u00fcr die Ausf\u00fchrung einer ETL-Strecke einen Identit\u00e4tswechsel erfordert, f\u00fchrt kein Weg an SSIS vorbei.<\/li>\n<li>Die Notwendigkeit der Verwendung eines SSIS Paketes als Startpunkt einer ETL-Strecke erfordert nicht die Realisierung der Streck ausschlie\u00dflich in SSIS. Die ETL-Strecke kann auch weiterhin mit T-SQL entwickelt werden.<\/li>\n<\/ul>\n<h2>Weiterf\u00fchrende Informationen in der Online Dokumentation von Microsoft<\/h2>\n<ul>\n<li><a href=\"https:\/\/docs.microsoft.com\/de-de\/sql\/ssms\/agent\/select-an-account-for-the-sql-server-agent-service?view=sql-server-ver15\">Select an Account for the SQL Server Agent Service<\/a><\/li>\n<li><a href=\"https:\/\/docs.microsoft.com\/de-de\/sql\/ssms\/agent\/implement-sql-server-agent-security?view=sql-server-ver15\">Implement SQL Server Agent Security<\/a><\/li>\n<li><a href=\"https:\/\/docs.microsoft.com\/de-de\/sql\/ssms\/agent\/create-a-sql-server-agent-proxy?view=sql-server-2017\">Create a SQL Server Agent Proxy<\/a><\/li>\n<li><a href=\"https:\/\/docs.microsoft.com\/de-de\/sql\/relational-databases\/security\/authentication-access\/create-a-credential?view=sql-server-2017\">Create a Credential<\/a><\/li>\n<\/ul>\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u00dcberblick SQL Server Integration Services (SSIS) ist ein \u00e4u\u00dferst m\u00e4chtiges Toolset f\u00fcr die Entwicklung von ETL-Strecken. Es gibt viele gute Gr\u00fcnde, die f\u00fcr einen Einsatz von SSIS sprechen. Es gibt derer aber auch gen\u00fcgend, die dagegen sprechen. Beschr\u00e4nken wir uns auf den Microsoft Produkt Stack, dann kommt als Alternative f\u00fcr die Entwicklung von komplexen ETL &#8230; <a title=\"SSIS vs. SQL &#8211; Identit\u00e4tswechsel\" class=\"read-more\" href=\"https:\/\/staging.sql.marcus-belz.de\/?p=617\" aria-label=\"Mehr Informationen \u00fcber SSIS vs. SQL &#8211; Identit\u00e4tswechsel\">Weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,5],"tags":[15,19,10],"class_list":["post-617","post","type-post","status-publish","format-standard","hentry","category-all-languages","category-german","tag-ssis","tag-ssis-vs-sql","tag-t-sql"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>SSIS vs. SQL - Identit\u00e4tswechsel - Just another SQL blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/staging.sql.marcus-belz.de\/?p=617\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SSIS vs. SQL - Identit\u00e4tswechsel - Just another SQL blog\" \/>\n<meta property=\"og:description\" content=\"\u00dcberblick SQL Server Integration Services (SSIS) ist ein \u00e4u\u00dferst m\u00e4chtiges Toolset f\u00fcr die Entwicklung von ETL-Strecken. Es gibt viele gute Gr\u00fcnde, die f\u00fcr einen Einsatz von SSIS sprechen. Es gibt derer aber auch gen\u00fcgend, die dagegen sprechen. Beschr\u00e4nken wir uns auf den Microsoft Produkt Stack, dann kommt als Alternative f\u00fcr die Entwicklung von komplexen ETL ... Weiterlesen\" \/>\n<meta property=\"og:url\" content=\"https:\/\/staging.sql.marcus-belz.de\/?p=617\" \/>\n<meta property=\"og:site_name\" content=\"Just another SQL blog\" \/>\n<meta property=\"article:published_time\" content=\"2018-07-19T22:40:44+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-07T00:15:26+00:00\" \/>\n<meta name=\"author\" content=\"marcus\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Geschrieben von\" \/>\n\t<meta name=\"twitter:data1\" content=\"marcus\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"3\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/staging.sql.marcus-belz.de\\\/?p=617#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/staging.sql.marcus-belz.de\\\/?p=617\"},\"author\":{\"name\":\"marcus\",\"@id\":\"https:\\\/\\\/staging.sql.marcus-belz.de\\\/#\\\/schema\\\/person\\\/98ab042e47d7286f64530ee18f20f675\"},\"headline\":\"SSIS vs. SQL &#8211; Identit\u00e4tswechsel\",\"datePublished\":\"2018-07-19T22:40:44+00:00\",\"dateModified\":\"2026-05-07T00:15:26+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/staging.sql.marcus-belz.de\\\/?p=617\"},\"wordCount\":668,\"keywords\":[\"SSIS\",\"SSIS vs. SQL\",\"T-SQL\"],\"articleSection\":[\"All Languages\",\"German\"],\"inLanguage\":\"de\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/staging.sql.marcus-belz.de\\\/?p=617\",\"url\":\"https:\\\/\\\/staging.sql.marcus-belz.de\\\/?p=617\",\"name\":\"SSIS vs. SQL - Identit\u00e4tswechsel - Just another SQL blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/staging.sql.marcus-belz.de\\\/#website\"},\"datePublished\":\"2018-07-19T22:40:44+00:00\",\"dateModified\":\"2026-05-07T00:15:26+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/staging.sql.marcus-belz.de\\\/#\\\/schema\\\/person\\\/98ab042e47d7286f64530ee18f20f675\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/staging.sql.marcus-belz.de\\\/?p=617#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/staging.sql.marcus-belz.de\\\/?p=617\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/staging.sql.marcus-belz.de\\\/?p=617#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/staging.sql.marcus-belz.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SSIS vs. SQL &#8211; Identit\u00e4tswechsel\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/staging.sql.marcus-belz.de\\\/#website\",\"url\":\"https:\\\/\\\/staging.sql.marcus-belz.de\\\/\",\"name\":\"Just another SQL blog\",\"description\":\"Marcus Belz \u00b7 SQL Server \u00b7 ETL \u00b7 Datenqualit\u00e4t\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/staging.sql.marcus-belz.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/staging.sql.marcus-belz.de\\\/#\\\/schema\\\/person\\\/98ab042e47d7286f64530ee18f20f675\",\"name\":\"marcus\",\"url\":\"https:\\\/\\\/staging.sql.marcus-belz.de\\\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"SSIS vs. SQL - Identit\u00e4tswechsel - Just another SQL blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/staging.sql.marcus-belz.de\/?p=617","og_locale":"de_DE","og_type":"article","og_title":"SSIS vs. SQL - Identit\u00e4tswechsel - Just another SQL blog","og_description":"\u00dcberblick SQL Server Integration Services (SSIS) ist ein \u00e4u\u00dferst m\u00e4chtiges Toolset f\u00fcr die Entwicklung von ETL-Strecken. Es gibt viele gute Gr\u00fcnde, die f\u00fcr einen Einsatz von SSIS sprechen. Es gibt derer aber auch gen\u00fcgend, die dagegen sprechen. Beschr\u00e4nken wir uns auf den Microsoft Produkt Stack, dann kommt als Alternative f\u00fcr die Entwicklung von komplexen ETL ... Weiterlesen","og_url":"https:\/\/staging.sql.marcus-belz.de\/?p=617","og_site_name":"Just another SQL blog","article_published_time":"2018-07-19T22:40:44+00:00","article_modified_time":"2026-05-07T00:15:26+00:00","author":"marcus","twitter_card":"summary_large_image","twitter_misc":{"Geschrieben von":"marcus","Gesch\u00e4tzte Lesezeit":"3\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/staging.sql.marcus-belz.de\/?p=617#article","isPartOf":{"@id":"https:\/\/staging.sql.marcus-belz.de\/?p=617"},"author":{"name":"marcus","@id":"https:\/\/staging.sql.marcus-belz.de\/#\/schema\/person\/98ab042e47d7286f64530ee18f20f675"},"headline":"SSIS vs. SQL &#8211; Identit\u00e4tswechsel","datePublished":"2018-07-19T22:40:44+00:00","dateModified":"2026-05-07T00:15:26+00:00","mainEntityOfPage":{"@id":"https:\/\/staging.sql.marcus-belz.de\/?p=617"},"wordCount":668,"keywords":["SSIS","SSIS vs. SQL","T-SQL"],"articleSection":["All Languages","German"],"inLanguage":"de"},{"@type":"WebPage","@id":"https:\/\/staging.sql.marcus-belz.de\/?p=617","url":"https:\/\/staging.sql.marcus-belz.de\/?p=617","name":"SSIS vs. SQL - Identit\u00e4tswechsel - Just another SQL blog","isPartOf":{"@id":"https:\/\/staging.sql.marcus-belz.de\/#website"},"datePublished":"2018-07-19T22:40:44+00:00","dateModified":"2026-05-07T00:15:26+00:00","author":{"@id":"https:\/\/staging.sql.marcus-belz.de\/#\/schema\/person\/98ab042e47d7286f64530ee18f20f675"},"breadcrumb":{"@id":"https:\/\/staging.sql.marcus-belz.de\/?p=617#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/staging.sql.marcus-belz.de\/?p=617"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/staging.sql.marcus-belz.de\/?p=617#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/staging.sql.marcus-belz.de\/"},{"@type":"ListItem","position":2,"name":"SSIS vs. SQL &#8211; Identit\u00e4tswechsel"}]},{"@type":"WebSite","@id":"https:\/\/staging.sql.marcus-belz.de\/#website","url":"https:\/\/staging.sql.marcus-belz.de\/","name":"Just another SQL blog","description":"Marcus Belz \u00b7 SQL Server \u00b7 ETL \u00b7 Datenqualit\u00e4t","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/staging.sql.marcus-belz.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Person","@id":"https:\/\/staging.sql.marcus-belz.de\/#\/schema\/person\/98ab042e47d7286f64530ee18f20f675","name":"marcus","url":"https:\/\/staging.sql.marcus-belz.de\/?author=1"}]}},"_links":{"self":[{"href":"https:\/\/staging.sql.marcus-belz.de\/index.php?rest_route=\/wp\/v2\/posts\/617","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/staging.sql.marcus-belz.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/staging.sql.marcus-belz.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/staging.sql.marcus-belz.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/staging.sql.marcus-belz.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=617"}],"version-history":[{"count":10,"href":"https:\/\/staging.sql.marcus-belz.de\/index.php?rest_route=\/wp\/v2\/posts\/617\/revisions"}],"predecessor-version":[{"id":958,"href":"https:\/\/staging.sql.marcus-belz.de\/index.php?rest_route=\/wp\/v2\/posts\/617\/revisions\/958"}],"wp:attachment":[{"href":"https:\/\/staging.sql.marcus-belz.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=617"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/staging.sql.marcus-belz.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=617"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/staging.sql.marcus-belz.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=617"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}