Dienstag, 27. April 2010

SQL Server User Instances -- neu und schon wieder veraltet?

Seit SQL Server 2005 ist es möglich, eine Datenbank als Datei (.mdf) mit der Anwendung (auch Web-Anwendung) mitzuliefern und "on-the-fly" mit dem Server zu verbinden. Dazu wird eine eigene Prozessinstanz von SQL Server "abgespalten", die mit den Rechten des angemeldeten Users läuft. An sich eine feine Sache... "Access-Feeling" mit voll SQL-Server-Power.

Ein typischer Connection-String für so etwas (ASP.NET-Webanwendung):

Data Source=(local);AttachDbFilename=|DataDirectory|\MeineDatenbank.mdf;
Integrated Security=True;User Instance=True

Beim Wieder-mal-Neuinstalieren eines Servers sind nun einige Facts wieder hochgekocht, die ich wohl vergessen hatte:

  • Das Feature wurde mit SQL Server 2005 eingeführt, und mußte dort extra mit sp_configure 'user instances enabled', '1' aktiviert werden
  • Das Feature ist bei SQL Server 2008 standardmäßig aktiv
  • User Instances gibt es nur in der Express Edition von SQL Server, nicht in einer Standard-Edition!! Das gilt für SQL Server 2008 noch genauso wie für 2005! Das ist insbesondere deswegen wichtig, weil es wohl eine Gesamt-Setup-CD von SQL Server 2008 gibt, die alle Editions und Features enthält (zumindest wir als MSDN-Kunden haben sowas). Ein falscher Klick, oder zu gut gemeint, und schon ist eine Standard Edition installiert, die keine User Instances beherrscht!

und nun das Sahnehäubchen (vorhin erst im Web bzw. in der Hilfe entdeckt!):

  • Das Feature der User Instances, kaum eingeführt mit 2005, gehört im SQL Server 2008 schon wieder zu den "Deprecated Features", also: wird in einer der nächsten Versionen wieder in Rente geschickt (bitte möglichst nichts mehr neues damit machen, alte Anwendungen vielleicht mal irgendwann umstellen, etc.)!
  • Das Beste ist die Begründung von Microsoft: "No longer needed as SQL Server Compact 3.5 SP1 provides the necessary functionality.". Wer schon mal die SQL Server Compact Edition verwendet hat (dateiorientiert, inprocess, dBase lässt grüßen ;-)) kann sich vermutlich auch nicht vorstellen, dass man jede x-beliebige Anwendung, die vorher mit einer echten SQL-Server-Datenbank lief (auch wenn sie mit User Instance attached wurde ist und bleibt das ein vollwertiger SQL-Server), so einfach auf SQL Server Compact Edition umstellen kann.

Keine Kommentare:

Kommentar veröffentlichen