Datenbankzugriffe mit der PowerShell

Datenangler

Auch zwölf Jahre nach ihrem Erscheinen besitzt die PowerShell noch keine Cmdlets und auch keinen Navigation Provider für Datenbankzugriffe. Da im Administratoren-Alltag aber immer wieder Datenbanken gelesen oder beschrieben werden müssen, zeigt dieser Beitrag, wie die Nutzung von Datenbanken mit Hilfe von .NET-Klassen aus der PowerShell heraus gelingt.
Was liegt näher, als immer wiederkehrende Aufgaben mit Skripten zu automatisieren. Das reduziert den Arbeitsaufwand wie auch die Fehleranfälligkeit. In der ... (mehr)

Das Microsoft .NET Framework, das Grundlage für die Windows PowerShell 1.0 bis 5.0 ist, bietet seit seiner ersten Version die Komponente ADO.NET (ActiveX Data Objects .NET) für den Datenbankzugriff. In ".NET Core", das Basis für Windows PowerShell Core 5.1 sowie die PowerShell 6.0 ist, gibt es seit .NET Core 2.0 ebenfalls weite Teile des ursprünglichen ADO.NET.

ADO.NET als Grundlage für DB-Zugriffe

ADO.NET ist eine providerbasierte Softwarekomponente, geschaffen für Software-Entwickler – nicht für Administratoren. In der Dokumentation [1] finden sich daher auch nur Beispiele in C#, Visual Basic .NET und C++, nicht aber in der PowerShell-Sprache. In ADO.NET wird für den Zugriff auf ein konkretes Datenbankmanagementsystem ein Datenbankprovider (alias .NET Data Provider oder Managed Data Provider) benötigt. ADO.NET im .NET Framework wird mit folgenden vier Datenprovidern ausgeliefert:

1. System.Data.SqlClient: Spezieller Treiber für Microsoft SQL Server ab Version 7.0.

2. System.Data.OracleClient: Spezieller Treiber für Oracle-Datenbanken, gilt aber als veraltet. Microsoft empfiehlt hier, den offiziellen Treiber von Oracle oder einen Treiber eines Drittanbieters wie DevArt oder DataDirect zu verwenden.

3. System.Data.OLEDB: Brücke zu OLE-DB-Providern, erlaubt die Anbindung von Access-Datenbanken, aber auch Microsoft SQL Server und andere.

4. System.Data.Odbc: Brücke zu ODBC-Treibern, ermöglicht die Anbindung von Datenspeichern, für die es nur alte ODBC-Treiber gibt (zum Beispiel DBase).

Weitere Provider (etwa für MySQL, SQ-Lite, DB2, Sybase, Informix und Ingres) werden von anderen Herstellern geliefert. Die auf einem System registrierten ADO.NET-Datenprovider listen Sie über eine statische .NET-Methode auf:

[System.Data.Common.DbProviderFactories]::GetFactoryClasses()

Dies funktioniert aber nicht in .NET Core

...

Der komplette Artikel ist nur für Abonnenten des ADMIN Archiv-Abos verfügbar.

comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023