SQL Server 2005 Compact Edition und SQL Server 2005 Express Edition – Welche Edition ist die richtige für Sie? Whitepaper Veröffentlicht: November 2006 Autor: Steve Lasker, Microsoft http://blogs.MSDN.com/SteveLasker Die neuesten Informationen stehen unter http://www.microsoft.com/germany/sql/ zur Verfügung. Inhalt Übersicht ...................................................................................................................................... 3 Datendienstmodul und eingebettetes Datenbankmodul .............................................. 3 Die Wahl der richtigen Datenbank..................................................................................... 4 XML.................................................................................................................................................................4 Access (Jet) und FoxPro (dbf) .........................................................................................................4 Microsoft Data Engine (MSDE) ........................................................................................................5 Microsoft SQL Server Express Edition und SQL Server Compact Edition ................5 Vergleich lokaler Datenfunktionen .................................................................................... 8 Bereitstellung und Wartung ............................................................................................... 10 ClickOnce-Support ...............................................................................................................................10 Zentrale Wartung über Microsoft Update................................................................................10 Bereitstellung der SQL Server Express Edition ....................................................................11 Bereitstellen der SQL Server Compact Edition.....................................................................11 Programmierbarkeit und Datenzugriffsmodell ............................................................ 11 Datendienstmodulmodell .................................................................................................................12 Eingebettetes Datenbankmodulmodell.....................................................................................12 Gespeicherte Verfahren und Ansichten ....................................................................................12 Delegierung und Mikroverwaltung ..............................................................................................13 Spezifische Funktionen lokaler Datenbanken .......................................................................14 Sichern Ihrer lokalen Daten ............................................................................................... 14 Physische Sicherheit ...........................................................................................................................15 Sicherheitsdesignleitlinie der SQL Server Compact Edition ..........................................15 Sicherheitsdesignleitlinie der SQL Server Express Edition.............................................15 SQL Server Express Edition-Benutzerinstanzen – eine kleine Einführung............16 Andere Sicherheitsbedrohungen ..................................................................................................17 Phishing und Medienangriffe ...................................................................................... 17 SQL Server Compact Edition-Datendateien sind dokumentensicher ......... 18 Sichern von Daten von einem gestohlenen Laptop ...........................................................18 Die Nutzung der Sicherheitsfunktionen von Windows .....................................................19 Windows Encrypted File System (EFS) ....................................................................................20 Leistungsmessung ...............................................................................................................................21 Schlussbemerkung................................................................................................................. 22 SQL Server 2005 Compact Edition und SQL Server 2005 Express Edition – Welche Edition ist die richtige für Sie? 2 Übersicht Selbst in diesem neuen Zeitalter, in dem Internetkonnektivität, Onlinedienste und drahtlose Technologien überall vorhanden sind, erkennen Architekten, Entwickler und Endbenutzer, dass es riskant, frustrierend und teuer sein kann, ihre Geschäftsvorgänge und Benutzerproduktivität von einer ständigen Verbindung mit einem zentralen Speicherort abhängig zu machen. Wenn die Verbindung aus irgendeinem Grund unterbrochen wird, können Sie es sich dann leisten, Ihre Geschäftsvorgänge ruhen zu lassen? Durch Flexibilität, Redundanz und die Fähigkeit, unabhängig innerhalb Ihrer Anwendungsarchitektur zu arbeiten, können Sie Ihre Benutzer und den Nettoprofit Ihres Unternehmens vor unvermeidbaren Problemen schützen. Bei einem lokalen Datenspeicher zum Zwischenspeichern von Onlinedaten, Aktivieren der Offlinefunktionalität oder Aktivieren einer eigenständigen Anwendung, die nur dem betreffenden Benutzer Daten zur Verfügung stellen muss, stellt sich die Frage, was als lokaler Speicher verwendet werden sollte. Die SQL Server-Familie bietet zwei für die lokale Speicherung geeignete Produkte an: SQL Server 2005 Compact Edition und SQL Server 2005 Express Edition. Mit der Veröffentlichung der Compact Edition für Desktopszenarios positioniert Microsoft diese Edition als lokale Standarddatenbank. Doch beide Editionen können kostenlos heruntergeladen und bereitgestellt werden. Die Entscheidung zwischen der SQL Server Express Edition und der SQL Server Compact Edition von SQL Server 2005 kann schwierig sein, weil beide Editionen auf dieselben Szenarios ausgerichtet zu sein scheinen In diesem Artikel für Entwickler werden die Vorteile der einzelnen Editionen aufgezeigt, und es wird erläutert, wann welche Edition zur lokalen Datenspeicherung verwendet werden sollte. Beim Lesen dieses Artikels gilt es zu bedenken, dass Sie das richtige Tool für die jeweilige Aufgabe auswählen müssen. Es gibt keine Einheitsgröße. SQL Server 2005 steht in mehreren Editionen zur Verfügung, weil jede für einen bestimmten Zweck entwickelt wurde. Wie Sie in diesem Artikel erfahren werden, sollte Ihnen die Wahl nicht schwer fallen, welche Datenbank für Ihren zentralen Datendienst verwendet werden sollte oder welche lokale Datenbank für Ihr Windows Mobile-basiertes Gerät geeignet ist. In diesem Artikel finden Sie die entsprechenden Informationen. Wenn Sie einen lokalen Datenspeicher für einen Tablet PC, Laptop oder Desktop in einem Remotebüro suchen oder einfach nur Ihre verbundene Call Center-Anwendung durch einige lokale Zwischenspeicherfunktionen ergänzen möchten, werden Sie einige interessanten Features und Aspekte entdecken, die möglicherweise nicht offensichtlich sind, wenn Sie sich zum ersten Mal mit den Funktionen der SQL Server Express Edition und dem nicht mehr ganz so neuen Modul SQL Server 2005 Compact Edition befassen. Datendienstmodul und eingebettetes Datenbankmodul Microsoft liefert zwei verschiedene Arten von SQL Server-Datenbankenmodulen. Ein Datendienst-Datenbankmodul ist in der Regel so ausgelegt, dass es als Dienst in einer Client-/Serverumgebung ausgeführt wird und diesen Dienst gleichzeitig für mehrere Clients bereitstellt. Ein eingebettetes Datenbankmodul wird in der Regel prozessintern mit der Anwendung ausgeführt, wird möglicherweise als eine Komponente der Anwendung geliefert und stellt den Dienst jeweils nur für einen Client bereit1. 1 Die Bereitstellung des Diensts für einen Client ist nicht mit der Unterstützung einer einzelnen Verbindung gleichzusetzen, sondern bedeutet vielmehr, dass ein einzelner Computer eine Verbindung herstellt. SQL Server 2005 Compact Edition und SQL Server 2005 Express Edition – Welche Edition ist die richtige für Sie? 3 Datendienst-Datenbankmodulfamilie: SQL Server Express Edition – der Einstieg in die Datendienstplattform. Express Edition wird auf einem Server und Desktopversionen der Windows-Plattform ausgeführt. Express Edition verfügt über die typische Funktionalität eines Datendienstmoduls und wurde erweitert, um den Einsatz als lokaler Datenspeicher zu unterstützen. SQL Server Workgroup Edition – ein Datendienstmodul, das auf kleine Büros und Filialen ausgerichtet ist. Workgroup bietet zusätzliche Funktionalität (z. B. zusammengeführte Replikationsveröffentlichung und unbegrenzte Datenbankgröße) und kann Computer mit doppelter CPU mit einem Speicher von bis zu 3 GB verwenden. SQL Server Standard Edition – ein Datendienstmodul, das auf kleine und mittelgroße Unternehmen ausgerichtet ist und über Zugriffspunktfunktionen für Businessintelligenz verfügt. SQL Server Enterprise Edition – ein Datendienstmodul, das mit erweiterten Tools, Analytik, Data Warehouse-Funktionen, Fehlertoleranz- und anderen Funktionen auf Unternehmensebene auf große Unternehmen ausgerichtet ist. Eingebettete Datenbankmodulfamilie: SQL Server Compact Edition – ein einfaches, prozessinternes Datenbankmodul, das auf Geräten und Desktops ausgeführt wird und auf die lokale Datenspeicherung ausgerichtet ist. Die Compact Edition umfasst einen Teil der SQL Server 2005Datentypen und nutzt allgemeine Elemente der T-SQL-Sprache (Transact-SQL) zusammen mit den Datendienstmodulen. Die Wahl der richtigen Datenbank Beim Entwickeln einer Anwendung, die Daten speichert und anzeigt, muss eine Reihe wichtiger Faktoren beachtet werden, angefangen beim zentralisierten Speicher über die Leistung auf dem Client bis hin zum Ermöglichen der Benutzerproduktivität, wenn das Netzwerk nicht verfügbar ist. Entwickler haben verschiedene Technologien eingesetzt, um die spezifischen Anforderungen ihrer Anwendungen zu erfüllen. Jede Technologie hat jedoch gewisse Einschränkungen. XML XML und andere textbasierte Technologien funktionieren gut als beständiges und Serialisierungsformat. Ihnen fehlt jedoch die umfassende Abfrage-, Datenbearbeitungsund Transaktionsfunktionalität von Datenbankmodulen. Access (Jet) und FoxPro (dbf) Viele Anwendungen bieten integrierte Speichermodule, welche die spezifischen Anforderungen ihrer Benutzer erfüllen sollen. Access und FoxPro sind als Teil von Microsoft Office Beispiele für Produkte mit integrierten Datenbankmodulen, die innerhalb ihres Kontexts gut funktionieren, aber nie ganz in die Visual Studio-Entwicklungsumgebung integriert wurden, da sie nicht als Allzweck-Datenspeicherungsmodule betrachtet wurden. SQL Server 2005 Compact Edition und SQL Server 2005 Express Edition – Welche Edition ist die richtige für Sie? 4 Microsoft Data Engine (MSDE) Als erster Versuch, sowohl die lokale Datenspeicherung als auch kleine Datendienstanforderungen zu erfüllen, bot MSDE einen umfassenden Satz an SQL Server-Funktionen in einem kleineren Paket an. Für Entwickler stellten die Bereitstellungsanforderungen eines Datendienstmoduls jedoch weiterhin eine Herausforderung dar. Mit zunehmend spezifischeren Anforderungen an die lokale Datenspeicherung wurde klar, dass der Einheitsansatz mit zu vielen Kompromissen für Entwickler und Benutzer behaftet war. Manchmal wird es erst nach einer Weile offensichtlich, dass das ursprünglich Geforderte nicht unbedingt zum gewünschten Ergebnis führt. Der überarbeitete Ansatz unterteilt die Produktfamilie in Datendienste und eingebettete Datenbanken, sodass Entwickler die entsprechende Produktfamilie für ihre Anwendungsanforderungen auswählen und die Kompatibilität innerhalb der Produktfamilie bewahren können. Microsoft SQL Server Express Edition und SQL Server Compact Edition SQL Server Express Edition ist die Weiterentwicklung von MSDE und löst viele allgemeine Probleme von MSDE im Hinblick auf die einfache Paketerstellung und Bereitstellung. Für die Installation der Express Edition sind Administratorrechte erforderlich. Sie ist weitaus kleiner als MSDE, aber mit ungefähr 53 MB für die meisten Clientbereitstellungsszenarios noch recht groß. Die Express Edition wurde zudem erweitert, um die lokale Datenspeicherung zu unterstützen, wenn die vollständige Funktionalität eines Datendienstmoduls erforderlich ist. SQL Server Compact Edition ist kein neues Produkt, sondern eine Weiterentwicklung der SQL Server-Produktfamilie, die seit mehreren Jahren mit der Microsoft Mobile-Plattform geliefert wird. SQL Server CE 1.0 wurde im Jahr 2000 erstmals veröffentlicht und mit Embedded VB (eVB) und VC (eVC) geliefert. SQL Server CE 2.0 wurde als lokaler Speicher für das kompakte Framework mit Visual Studio 2003 geliefert. Als Reaktion auf die Bitten von Kunden, die einen gemeinsamen lokalen Speicher für Geräte bis hin zum Tablet PC wünschten, wurde SQL Server CE in SQL Server Mobile 3.0 umgewandelt und mit Visual Studio 2005 geliefert. Im November 2006 wurde SQL Server Mobile in SQL Server Compact Edition umgewandelt, wodurch das SQL Server CE-Modul für die gesamte Desktopplattform aktiviert und die Beschränkung für Geräte und den Tablet PC aufgehoben wurde. SQL Server Compact Edition erfüllt die Anforderungen von Anwendungen, bei denen ein einfaches Datenmodul direkt in die Anwendung eingebettet werden muss. Mit vielen Microsoft-Produkten wurde MSDE geliefert. Bei einer ganzen Reihe anderer Microsoft-Produkte war jedoch insgeheim das SQL Server Compact Edition-Modul im Lieferumfang enthalten, beispielsweise bei Media Center PC, MSN Client und mehreren Anwendungen von Windows Vista. Die Produktteams erkannten den Bedarf an einem Kernsatz an Datenbankfunktionen und beschlossen, das SQL Server Compact Edition-Modul als lokalen Datenspeicher an Millionen Benutzer zu liefern. Das SQL Server Compact EditionModul war für den Benutzer nicht sichtbar, da es als Teil der Anwendung betrachtet wurde. Das ist das wichtigste Unterscheidungsmerkmal. Die in diesem Artikel erörterten Datenspeicherfunktionen gehen über die traditionellen, auf den Server konzentrierten Benchmarks des Transaction Processing Council (TCP) und der Mehrbenutzersicherheit hinaus. In Bezug auf eine lokale Datenbank gibt es in der jeweiligen Umgebung unterschiedliche Herausforderungen. Server werden nicht angehalten, wiederhergestellt oder in den Ruhezustand versetzt. Auf unseren Servern werden keine Filme angesehen und keine Spiele gespielt. Es wird keine Kopie von Outlook ausgeführt und keine PowerPoint-Präsentation vorgestellt. Wir denken nicht über den Stromverbrauch und SQL Server 2005 Compact Edition und SQL Server 2005 Express Edition – Welche Edition ist die richtige für Sie? 5 darüber nach, ob der Server einen Tag lang mit Batterien laufen würde, die jede Nacht neu aufgeladen werden. Und wir erachten den Installations- und Datenträgerbedarf eines Servers nicht als kritisch, da im Vergleich zu jedem Client weitaus weniger Server installiert und konfiguriert werden. In Abbildung 1 werden zwei Szenarios mit einer Lösung dargestellt. Wenn Sie Datendienstfunktionalität benötigen (z. B. die Fähigkeit, mehrere Remotebenutzer zu unterstützen), sollten Sie mit der SQL Server Express Edition beginnen und sich in der Struktur der Datendienstproduktfamilie hocharbeiten. Wenn Sie einen Datenspeicher für den Pocket PC, die Smartphone-Plattform oder denselben Datenspeicher angefangen beim Smartphone bis zum Desktop brauchen, ist SQL Server Compact Edition die richtige Wahl. In diesem Artikel liegt der Schwerpunkt auf den für einen lokalen Datenspeicher wichtigen Kernfunktionen, und die SQL Server Express und SQL Server Compact Edition werden anhand dieser Funktionen unterschieden. SQL Server 2005 Compact Edition und SQL Server 2005 Express Edition – Welche Edition ist die richtige für Sie? 6 Lokal Datenspeicher Windows Mobile PocketPC SmartPhone Compact Edtiion Schwerpunkt dieses Whitepaper { Die richtige Wahl in der Kategorie Eingebettete Datenbank { { Compact Edtiion Desktop XP, TabletPC, Vista, Windows 2000 DATENSPEICHER Datendienst SZENARIOS BEGINNEN SIE HIER Die richtige Wahl in der Kategorie Datenbankserver Abbildung 1: Entscheidungsstruktur für SQL Server Compact Edition und SQL Server Express Edition. Datendienste Ein Datendienst ist ein Datenbankmodul, das Datenbankfunktionalität für Clients von Remoteverbindungen aus bereitstellt. Wenn Ihre Anwendung zentrale Datendienste für Remoteclients bereitstellt, finden Sie in Abbildung 1 die verfügbaren SQL Server- SQL Server 2005 Compact Edition und SQL Server 2005 Express Edition – Welche Edition ist die richtige für Sie? 7 Datendienstprodukte: SQL Server 2005 Express, Workgroup, Standard oder Enterprise Edition. Die Palette reicht vom kleinen und kostenlosen Datendienst bis zu den umfassenden, fehlertoleranten Datendiensten der SQL Server Enterprise Edition. Lokale Datenspeicher Ein lokaler Datenspeicher bietet die bei einem relationalen Datenbankmodul erforderliche Kernfunktionalität einschließlich umfassender Abfragefunktionalität, Transaktionen, Persistenz und der auf einer Datendienstplattform häufig verwendeten Datentypen. Auf die Datenbank wird von einem Client aus zugegriffen, obwohl sie nicht auf eine einzelne Verbindung begrenzt ist. Beispiele sind das Zwischenspeichern von Produktkatalogen, Zuständen und Statuscodes bis hin zu umfassenden persönlichen Kontoführungsanwendungen. Die Anwendung kann mit einem zentralen Datendienst kommunizieren, benötigt jedoch einen lokalen Speicher zur Verbesserung der Leistung. Oder die Anwendung muss auch dann funktionsfähig sein, wenn keine Konnektivität verfügbar ist. Microsoft Outlook 2003 demonstriert, dass die Grenzen zwischen einem lokalen und zentralen Speicher verwischt sind. Bei der Interaktion mit Outlook sind die meisten Vorgänge an den lokalen Datenspeicher gerichtet. Wenn eine Verbindung zum Exchange Server verfügbar ist, wird der lokale Speicher mit dem zentralen Datendienst synchronisiert. Möglicherweise bemerkt der Benutzer nicht einmal, wenn die Verbindung getrennt wird. Mobile Geräte In diesem Artikel bezieht sich der Begriff mobiles Gerät auf beliebige Hardware, die auf der Windows Mobile- oder Windows CE-Plattform ausgeführt wird. In Abbildung 1 wird verdeutlicht, dass SQL Server 2005 Compact Edition die richtige Wahl für eine Anwendung darstellt, für die ein lokaler Datenspeicher erforderlich ist und die auf ein mobiles Gerät abzielt. Desktopdatenbanken Der Begriff Desktopdatenbank bezieht sich in diesem Artikel auf eine nichtmobile Windows Plattform einschließlich Windows XP, Windows Tablet PC, Windows 2000, Windows Vista und Windows 2003 Server. Wenn für Ihre Anwendung ein lokaler Datenspeicher erforderlich ist, der auf die Desktopplattform abzielt, können Sie die SQL Server 2005 Compact Edition (die zur eingebetteten Datenbankfamilie gehört) oder die SQL Server 2005 Express Edition wählen (diese gehört zur Datendienstproduktfamilie). Microsoft empfiehlt die SQL Server Compact Edition als lokale Standarddatenbank. Wenn für Ihre Anwendung jedoch einige Datendienstfunktionen erforderlich sind, könnte die Verwendung der SQL Server Express Edition notwendig sein. Im übrigen Teil dieses Artikels geht es um die Entscheidung, ob die SQL Server 2005 Compact Edition oder die SQL Server 2005 Express Edition die richtige Wahl für Ihren lokalen Datenspeicher für Desktopanwendungen darstellt. Vergleich lokaler Datenfunktionen Die Liste mit Funktionen in Tabelle 1 zeigt, dass bei den Funktionen der SQL Server Compact und Express Edition deren Hauptszenarios im Mittelpunkt stehen: lokaler Speicher beziehungsweise Datendienste. Diese Liste mit Funktionen ist (insbesondere im Hinblick auf die Funktionen der SQL Server Express Edition) nicht vollständig. Bei den aufgeführten Funktionen handelt es sich um jene, die ausschließlich zum Vergleich der lokalen Datenspeicher erforderlich sind. So kann beispielsweise SQL Server Express Edition bis zu 1 GB Arbeitsspeicher zur Optimierung der Abfrageverarbeitung nutzen. Das ist wichtig für einen Datendienst, der möglicherweise komplexe Abfragen von vielen Clients gleichzeitig verarbeiten muss. Bei einer lokalen Datenbank besteht jedoch eine praktische Beschränkung bei der Datenmenge, die ein Benutzer innerhalb eines bestimmten Zeitraums physisch eingeben oder mit einem Barcodelesegerät einscannen kann. SQL Server 2005 Compact Edition und SQL Server 2005 Express Edition – Welche Edition ist die richtige für Sie? 8 Funktion SQL Server Compact Edition Bereitstellungs-/Installationsfeatures Installationsgröße 1,7 MB Downloadgröße 1,8 MB bei Erweiterung auf dem Datenträger ClickOnce-Bereitstellung Mit der Anwendung privat installiert und eingebettet Installationsoption ohne Administratorrechte Wird auf der Windows Mobile-Plattform ausgeführt Wird zentral mit einem MSI installiert Wird prozessintern ausgeführt 64-Bit-Support Wird als Dienst ausgeführt Datendateifunktionen Dateiformat Datendateispeicher auf einer Netzwerkfreigabe Unterstützung verschiedener Dateierweiterungen Unterstützung der Datenbankgröße XML-Speicher SQL Server Express Edition 53,8 MB Downloadgröße Ca. 197 MB bei Erweiterung auf dem Datenträger Version 3.1 Windows on Windows (WOW) Systemeigene 64-BitAnwendung in der nächsten Version Wird prozessintern mit der Anwendung ausgeführt N+1 Einzelne Datei Mehrere Dateien 4 GB 4 GB Gespeichert als nText Codefrei, dokumentensicher, Dateiformat Programmierbarkeit Transact-SQL Häufige Abfragefunktionen Verfahrensorientierte T SQL „Select Case“, If, Funktionen Remotedatenzugriff (Remote Data Access, RDA) ADO.NET Sync Framework Mit Visual Studio Orcas aktiviert Geplanter Support für zukünftige Version Abonnent für Zusammenführungsreplikation Einfache Transaktionen Verteilte Transaktionen SQL Server 2005 Compact Edition und SQL Server 2005 Express Edition – Welche Edition ist die richtige für Sie? 9 Funktion SQL Server Compact Edition Bereitstellungs-/Installationsfeatures Systemeigene XML, XQuery/QPath Gespeicherte Verfahren, Ansichten, Trigger Rollenbasierte Sicherheit Anzahl gleichzeitiger Verbindungen 256 SQL Server Express Edition Unbegrenzt Tabelle 1: Funktionsvergleich zwischen der Compact Edition und der Express Edition. Der Vergleich der Funktionen beider Datenbankmodule offenbart nicht alles. Es müssen eine Reihe philosophischer und praktischer Fragen beantwortet werden, bevor man für die lokale Datenspeicherung die richtige Wahl treffen kann. Einige wichtige Faktoren, die es bei der Wahl Ihres lokalen Datenspeichers zu bedenken gilt, werden in den folgenden Abschnitten erörtert. Bereitstellung und Wartung Wie die Entwicklung webbasierter Anwendungen gezeigt hat, ist die Bereitstellung einer der kompliziertesten Aspekte für Clientanwendungen. Unabhängig davon, ob Ihre Anwendung über das Internet bereitgestellt oder von einer CD installiert wird, haben die Installation und Komplexität des Installationsvorgangs direkte Auswirkungen auf die Meinung des Benutzers in Bezug auf das Produkt und die Direktkosten im Zusammenhang mit Supportanrufen. Die Möglichkeit, eine Anwendung und ihre Abhängigkeiten leicht zu deinstallieren, kann sich ebenfalls entscheidend auf die Supportkosten und die Benutzermeinung auswirken. ClickOnce-Support Sowohl die SQL Server Express als auch die SQL Server Compact Edition können in das Setup Ihrer Anwendung integriert werden. ClickOnce kann beim Bereitstellen beider Module als Voraussetzung für Ihre Anwendung helfen. Die SQL Server Express Edition, die als Windows-Dienst ausgeführt wird, muss mit einem MSI installiert werden. Die SQL Server Compact Edition verfügt über ein MSI-Bereitstellungsmodell zur zentralen Installation des Moduls, wofür ebenfalls Administratorrechte erforderlich sind. Die SQL Server Compact Edition kann jedoch als Satz von DLLs, die mit der Hostanwendung prozessintern ausgeführt werden, auch privat mit der Anwendung bereitgestellt werden. Für die private Bereitstellung sind keine Administratorrechte erforderlich. Zentrale Wartung über Microsoft Update Sowohl die SQL Server Express als auch die SQL Server Compact Edition können über Microsoft Update gewartet werden, wenn sie mit dem MSI installiert wurden. Bei der privaten Bereitstellung der SQL Server Compact Edition werden die DLLs nicht mit dem Applet „Software“ registriert und von Microsoft Upgrade nicht gewartet. Einige Anbieter von Anwendungen betrachten dies als Vorteil. Obwohl Service Packs und Hotfixes strenge Abwärtskompatibilitätstests durchlaufen, können sich die dabei angesprochenen Probleme dennoch auf den Betrieb einer Anwendung auswirken. Durch die private Bereitstellung der SQL Server Compact Edition mit der Anwendung können die Anwendungsbesitzer die Servicefreigabe testen und die aktualisierten Komponenten der SQL Server Compact Edition dann mit einer aktualisierten und getesteten Version ihrer Anwendung bereitstellen. Bei einer privaten Bereitstellung der SQL Server Compact Edition mit jeder Anwendung sind mehrere Kopien des Moduls vorhanden. Da die gesamte Laufzeit nur ein paar digitale Bilder beträgt, ist SQL Server 2005 Compact Edition und SQL Server 2005 Express Edition – Welche Edition ist die richtige für Sie? 10 die Größe im Vergleich zum Vorteil der Wartung auf Anwendungsebene und der Möglichkeit, die Anwendung und ihre Komponenten ohne Administratorrechte zu installieren, in der Regel ein eher unbedeutender Aspekt. Bereitstellung der SQL Server Express Edition Als serverbasiertes Produkt mit einem umfassenden Satz an Datendienstfunktionen beinhaltet die SQL Server Express Edition eine Reihe von Komponenten, die Sie während der Installation möglicherweise konfigurieren möchten. Die SQL Server Express Edition wurde standardmäßig sicher ausgelegt, und die Standardinstallation ist für das lokale Datenspeicherungsszenario optimiert. Das Installationsprogramm für die SQL Server Express Edition beinhaltet eine umfassende Befehlszeilenschnittstelle, die es Entwicklern ermöglicht, SQL Server Express zu installieren und zu konfigurieren, wenn die Standardinstallation nicht ihren Anforderungen entspricht. Bereitstellen der SQL Server Compact Edition Die SQL Server Compact Edition am anderen Ende des Spektrums wurde von ihrer Einführung an so ausgelegt, dass sie klein und leicht bereitzustellen ist. Mobile Geräte, wie z. B. der Pocket PC und das Smartphone, haben keine komplexen Installationsumgebungen und auch nicht viele Ressourcen. Die SQL Server Compact Edition, die prozessintern mit der Hostanwendung ausgeführt wird, hat keine Dienste oder anderen Optionen, die während der Installation konfiguriert werden müssen. Die SQL Server Compact Edition stellt ihre Konfigurationsoptionen innerhalb der Verbindungszeichenfolge bereit, sodass jede Instanz Parameter angeben kann, die für das Verwendungsszenario der betreffenden Anwendung spezifisch sind. Diese DLLs können mit einem MSI zentral auf dem Computer des Benutzers installiert werden. Zur Verwendung des MSI sind jedoch Administratorrechte erforderlich, um den verwalteten ADO.NET-Anbieter innerhalb des globalen Assemblycaches (GAC) zu registrieren. Dieselben DLLs können auch privat innerhalb der Hostanwendung bereitgestellt werden. Clientanwendungen, wie beispielsweise die mit ClickOnce bereitgestellten, werden in der Regel in den Dokumenten- und Einstellungsordnern des Benutzers installiert, sodass für den Installationsvorgang keine Administratorrechte erforderlich sind. Ein weiterer Vorteil der privaten Bereitstellung ist die Nachverfolgung von Abhängigkeiten. Falls ein Benutzer beschließt, Ihre Anwendung zu deinstallieren, sind keine zusätzlichen Schritte für die vollständige Deinstallation der Anwendung und des Datenspeichers erforderlich. Bei Verwendung des zentralen MSI-Bereitstellungsmodells ist es erforderlich, dass Ihre Anwendung eine Referenzzählung der Nutzung des Datenbankmoduls durchführt, oder der Benutzer weiß, dass die Umgebung durch Deinstallation des Produkts nicht in ihren ursprünglichen Zustand zurückversetzt wird. Programmierbarkeit und Datenzugriffsmodell Programmierbarkeitsfunktionen und Prioritäten für eine lokale Datenbank können sich stark von den in einem Datendienst verfügbaren unterscheiden. Die SQL Server Express Edition bietet eine Reihe von Funktionen, die in der SQL Server Compact Edition nicht vorhanden sind. Die SQL Server Compact Edition hingegen verfügt über ein einige Funktionen, die in der SQL Server Express Edition nicht vorhanden und für ein lokales Programmiermodell einzigartig sind. SQL Server 2005 Compact Edition und SQL Server 2005 Express Edition – Welche Edition ist die richtige für Sie? 11 Datendienstmodulmodell Klassische Datendienst-Datenbankmodule wie z. B. SQL Server 2005 sind so ausgelegt, dass sie mehreren Benutzern und sogar mehreren Anwendungen gleichzeitig dienen. Daher werden Datendienstmodule in der Regel optimiert, um Leistung, Abstraktion und komplexe Rollenverwaltung bereitzustellen. Eingebettetes Datenbankmodulmodell Das eingebettete Datenbankmodul wurde für den einzelnen Benutzer und Daten entworfen, die nicht direkt für andere Benutzer freigegeben werden. Die Leistung wird über alle Anwendungen hinweg gemessen, die vom Benutzer ausgeführt werden könnten, und die Daten werden in der Regel für jeden Benutzer partitioniert. Gespeicherte Verfahren und Ansichten Wenn Sie dasselbe Programmiermodell als Datendienst benötigen, könnte allein diese Tatsache dazu führen, dass Sie sich für die Verwendung der SQL Server Express Edition entscheiden. Sie bietet denselben Support für T-SQL und Verfahrenskonstrukte für gespeicherte Verfahren wie für andere Datendiensteditionen. Die SQL Server Compact Edition unterstützt keine gespeicherten Verfahren, Ansichten oder Trigger. Daher betrachten einige Entwickler die SQL Server Compact Edition möglicherweise nicht als „echten“ Datenspeicher. Man sollte jedoch einige Dinge bedenken, bevor man zu dieser Schlussfolgerung gelangt. Wenn man übliche Praktiken in Betracht zieht, verfügen viele Unternehmen über Standards bei der Verwendung gespeicherter Verfahren zum Zugriff auf Daten innerhalb der Datenbank, und sie erwarten Support für gespeicherte Verfahren für ein gemeinsames Programmiermodell, das für ihre lokale Datenbank und ihren Datendienst vorhanden ist. Manchmal sollte jedoch überlegt werden, warum diese Standards erstellt wurden und ob sie weiterhin Gültigkeit haben. Gespeicherte Verfahren können einfach oder komplex sein. Für Entwickler und DBAs gibt es jedoch normalerweise drei Hauptgründe für die Standardisierung von gespeicherten Verfahren: Leistung, Abstraktion und Sicherheit. Bedenken Sie, dass viele Dienstdatenbanken u. U. von mehreren Anwendungen gleichzeitig verwendet werden. Wenn die Datenbank stärker genutzt wird, werden Spalten und Tabellen den ständig wachsenden Datenanforderungen hinzugefügt. Die Belastung der Datenbank kann an bestimmtem „Hotspots“ zunehmen, sodass der DBA die Datenbank mit Schemaänderungen optimieren muss. Da ein Datendienst die individuellen Anwendungen nicht immer „besitzt“ oder nicht einmal weiß, welche Anwendungen seine Daten verwenden, müssen interne Änderungen am Schema von interagierenden Anwendungen abstrahiert werden. Daher entfernen viele DBAs die Interaktion auf Tabellenebene und aktivieren nur den Zugriff über gespeicherte Verfahren und Ansichten. Entsprechend greifen viele verschiedene Benutzer und Benutzertypen gleichzeitig auf den Datendienst zu. Die Benutzer können verschiedene Rollen haben und sollten daher über verschiedene Zugriffsberechtigungen für die Daten verfügen. Gespeicherte Verfahren und Ansichten bieten eine Sicherheitsschranke, um die Rolle eines Benutzers auf bestimmte Datenvorgänge zu begrenzen. Die jeweilige Rolle erhält einen Satz an Berechtigungen für verschiedene gespeicherte Verfahren und Ansichten. Leistungsprobleme werden oft mit gespeicherten Verfahren zur Zwischenspeicherung von Abfrageplänen und der Optimierung von Abfragen innerhalb gespeicherter Verfahren verwaltet, damit keine Änderungen an der Anwendung vorgenommen werden müssen. SQL Server 2005 Compact Edition und SQL Server 2005 Express Edition – Welche Edition ist die richtige für Sie? 12 Wenn man bedenkt, dass eine eingebettete Datenbank per Definition Teil der Anwendung ist, gelten nicht unbedingt dieselben Regeln. Die Datenbank wird mit der Anwendung versioniert, sodass keine Abstraktionsprobleme vorhanden sind und die Vorteile der Erstellung und Verwaltung gespeicherter Verfahren nicht umgesetzt werden. Da die lokalen Daten bereits entsprechend den Daten partitioniert sein sollten, die für die jeweilige Benutzerrolle zulässig sind, gibt es auch nicht unbedingt Sicherheitsprobleme. Die Leistung zwischengespeicherter Abfragepläne wird umgesetzt, wenn viele gleichzeitige Vorgänge durch eine große Anzahl von Benutzern verursacht werden. Der Aufwand bei der Verwaltung von Abfrageplänen ist kein Problem in einer Serverumgebung, da Server in den meisten Fällen über größere dedizierte Speichermengen verfügen. Wenn sich Abfragepläne ändern, kann ein DBA diese Abfragepläne auf dem Server optimieren. Eine weitere Problemkategorie, die von gespeicherten Verfahren abgedeckt wird, bezieht sich auf Verfahrensvorgänge. Diese können von der Verwaltung einer zuletzt bearbeiteten Spalte über die Verwaltung einer Sternschematabelle bis zur Implementierung von Geschäftsregeln reichen. Diese Vorgänge können durchaus noch innerhalb einer lokalen Datenbank vorhanden sein. Wenn Sie jedoch die Wahl haben, möchten Sie Ihre Möglichkeiten wahrscheinlich nicht darauf beschränken, Code nur in T-SQL zu schreiben, selbst wenn die T-SQL-Sprache umfassend unterstützt wird. Stattdessen möchten Sie möglicherweise die ganze Palette Ihrer bevorzugten, von .NET verwalteten Codesprachen nutzen. Zusätzliche Neuerungen wie z. B. LINQ und das ADO.NET-Einheitsdatenmodell bieten Ihnen einen noch umfassenderen Satz an Funktionen. Delegierung und Mikroverwaltung Wenn DBAs gespeicherte Verfahren zur Beschränkung des Datenbankzugriffs verwenden, beschränken sie auch die Arten von Fragen, die eine Anwendung oder ein Benutzer an die Daten stellen kann. In einer Clientserverumgebung kann es vorteilhaft sein, die komplexen Fragen zu beschränken, die eine Anwendung an die Datenbank stellen kann. In einer freigegebenen Datenbank ist Komplexität mit hohen Kosten gleichzusetzen, da möglicherweise alle Benutzer „bestraft“ werden, wenn mehrere Benutzer gleichzeitig komplexe und kostenintensive Fragen stellen. In einer lokalen Datenbank betreffen komplexe Fragen nur den aktuellen Benutzer. Bei komplexen Fragen kann es sich auch um sehr wichtige oder sinnvolle Fragen handeln, die gestellt werden müssen. Sie können aber durchaus den richtigen Indexsatz erstellen, Ihre Datenbank auf Leistung auslegen und Abfragen hinsichtlich Leistung schreiben. Wenn für eine Anwendung eine lokale Datenbank vorhanden ist, heißt das einfach, dass der Entwickler sehr viel mehr Flexibilität zum Durchführen komplexer Abfragen hat, die in einer Datendienstumgebung höchst problematisch wären, aber für den Benutzer sehr produktiv und lehrreich sind. In einer lokalen Datenbank ist Komplexität nicht mehr mit hohen Kosten sondern mit hohem Wert gleichzusetzen. Das heißt, gespeicherte Verfahren können also durchaus auch lokal verwendet werden. Die auf dem Server erstellten gespeicherten Verfahren würden wahrscheinlich nicht die Arten von Abfragen darstellen, die Sie auf dem Client schreiben würden. Betrachten Sie ein ähnliches Szenario, das Sie direkt betrifft. Wie verfahren Sie bei der Vorratshaltung, um bestimmte Mahlzeiten für Ihre Familie vorzubereiten? Sie würden die Nahrungsmittel in Ihrer Küche mit einem gefilterten Satz an Rohstoffen im Lebensmittelgeschäft synchronisieren. Obwohl im örtlichen Supermarkt einige Fertigmahlzeiten erhältlich sind, kann es nicht alle gewünschten Zutaten und Gewürze für jeden einzelnen Kunden geben. Ähnlich beantwortet der Server möglicherweise viele spezifische Fragen nicht. Der Server stellt möglicherweise einen Satz an gespeicherten Verfahren und Diensten zur Verfügung, damit die lokale SQL Server 2005 Compact Edition und SQL Server 2005 Express Edition – Welche Edition ist die richtige für Sie? 13 Datenbank mit dem Server synchronisiert bleibt. Die gespeicherten Verfahren geben Deltas der Daten zurück, die lokal mit den Daten auf dem Server verglichen wurden, welcher die Clientanwendung aktiviert, und der Anwendungsentwickler kann eine breite Palette an Fragen bereitstellen, ohne dass ein DBA unbedingt jede Frage optimieren muss. Spezifische Funktionen lokaler Datenbanken Beim Datenzugriff auf einen Datendienst müssen Entwickler an Skalierbarkeit und Parallelität denken. Entwickler, die erwarten, dass ihre Anwendung für Hunderte und Tausende von gleichzeitigen Benutzern skaliert werden kann, würden nie eine offene Verbindung zur Datenbank verwalten oder einen aktualisierbaren Cursor verwenden, mit dem der Benutzer Daten anzeigen und bearbeiten kann. Von FoxPro- und Access-Entwicklern wurde dies als „Mittagspausensperre“ bezeichnet. Ein Benutzer öffnet beispielsweise ein Formular, nimmt ein paar Änderungen vor und geht zum Mittagessen. Vielleicht fährt er sogar in den Urlaub. Andere Benutzer, die eine Änderung an diesen Daten vornehmen müssen, werden blockiert. Um diese Blockierung aufzuheben, wird derjenige, bei dem das Kundenformular geöffnet ist, ausgerufen, um es wieder zu schließen. Bei der Datendienstprogrammierung müssen ein Snapshot der Daten abgerufen, eine Kopie an den Client zurückgegeben und serverseitige Ressourcen freigegeben werden. Dies wird oft als zustandsfreie oder getrennte Programmierung bezeichnet. Der Client bearbeitet die Kopie der Daten und gibt die Änderungen an den Server mit den ursprünglichen Werten zurück. Der Code, durch den die Änderungen angewendet werden, benutzt die ursprünglichen Werte, um festzustellen, ob ein anderer Benutzer die Daten geändert hat, während der Benutzer mit der getrennten Kopie gearbeitet hat. Dies wird oft als Parallelitätsprogrammierung bezeichnet. Funktionen bei ADO.NET, wie z. B. das DataSet- und DataAdapter-Modell, ermöglichen dies durch das Bereitstellen von nicht verbundenen Programmierungsmodelldiensten innerhalb des DataSet. Andere objektrelationale Zuordnungstechnologien (O/R) müssen für eine skalierbare Lösung ähnliche Dienste bereitstellen. Wenn Anwendungen mit einer lokalen Datenbank arbeiten, kann die Datenbank selbst die getrennte Kopie sein. Statt eine weitere getrennte Kopie mit einer DataSet- oder einer anderen O/R-Technologie zu erstellen, ist es oft einfacher, eine Verbindung zu öffnen und das Ergebnis einer aktualisierten Abfrage durch Datenbindung zur Verfügung zu stellen. Da die Datenbank innerhalb der Anwendung eingebettet ist, muss kein komplexes zustandsfreies Programmiermodell verwaltet werden. Die SQL Server Compact Edition unterstützt mit dem SqlCeResultSet nicht nur einen aktualisierbaren, scrollfähigen Cursor, sondern auch ISAM-ähnlichen Dateizugriff, der Indizes der Tabelle nutzt, um direkt eine bestimmten Zeile aufzurufen. Da die Änderungen am lokalen Speicher auf den Server angewendet werden, wird das zustandsfreie Modell ein Faktor. Hier kommen erneut gespeicherte Verfahren, die das lokale Datenschema im Vergleich zu den Serverschemas abstrahieren, ins Spiel. Durch Verwendung des richtigen Tools für die entsprechende Aufgabe können Sie aus gespeicherten Verfahren auf dem Server weiterhin Vorteile ziehen und gleichzeitig Funktionen wie SqlCeResultSet oder Innovationen wie LINQ und das ADO.NET V3-Einheitsmodell nutzen. Sichern Ihrer lokalen Daten Sicherheit spielt bei der Anwendungsentwicklung immer eine wichtige Rolle. Die SQL Server Express und SQL Server Compact Edition sind sichere Plattformen, die helfen, Ihre vertraulichen Daten zu schützen. Die Art und Weise, in der die jeweilige Edition Sicherheit verwaltet, ist unterschiedlich, und die Unterschiede sollten in Betracht gezogen werden, wenn Sie Ihr Modul für die Datenspeicherung auswählen. Dieser Abschnitt enthält einen Überblick über die Leitlinien für das Sicherheitsdesign für das jeweilige Modul. Im Anschluss daran wird erläutert, wie sich das jeweilige Design auf verschiedene Sicherheitsbedrohungen auswirkt, mit denen Ihr lokaler Datenspeicher u. U. konfrontiert wird. SQL Server 2005 Compact Edition und SQL Server 2005 Express Edition – Welche Edition ist die richtige für Sie? 14 Physische Sicherheit Beide Datenbankmodule, die hier erörtert werden, speichern Daten in einer oder mehreren Dateien. Der beste Datenschutz besteht darin, den physischen Zugriff auf die Datei zu beschränken, sodass nur Benutzer, die Zugriff auf die Daten benötigen, die Datei abrufen können. Physische Sicherheit umfasst die Verwendung der entsprechenden Windowsbasierten Sicherheit, um den Zugriff auf die Datei auf dem Datenträger zu steuern, sowie die Sicherheit der Einrichtung und Geräte, innerhalb derer sich die Datendatei befindet. Man hört viel zu oft, dass vertrauliche Daten verloren gehen, weil Kriminelle unangemessenen Zugang zu physischen Dateien oder zu den Geräten haben, auf denen die Dateien gespeichert sind. Daher darf die physische Dateisicherheit keinesfalls ignoriert werden. Sicherheitsdesignleitlinie der SQL Server Compact Edition Bei der SQL Server Compact Edition ging man von Anfang an davon aus, dass der Benutzer Zugriff auf die physische Datei haben würde. Ohne zusätzlichen Sicherheitsmechanismus könnte der Benutzer Ihre Anwendung umgehen und Tools wie z. B. MSQuery verwenden, um Rohdaten anzuzeigen und zu bearbeiten. Die SQL Server Compact Edition unterstützt die Möglichkeit, die Datendatei durch ein Kennwort zu schützen und zu verschlüsseln, wodurch der Zugriff auf Ihre Anwendung, in der das Kennwort eingebettet ist, beschränkt wird. Der Kennwortschutz der Datenbankdatei fügt eine Schutzschicht hinzu, die der Datei erhalten bleibt, sodass der Zugriff auf Daten schwieriger wird, falls ein nicht autorisierter Benutzer die Datei in die Hände bekommt. Bei der dateibasierten Sicherheit werden keine zusätzlichen Ebenen von Datenzugriff angeboten. Ein einzelnes Kennwort ermöglicht umfassenden Zugriff auf die Datei. Doch lokale Datendateien partitionieren Daten in der Regel, bevor sie auf dem Computer des lokalen Benutzers eintreffen. Selbst wenn mehrere Personen Zugang zu einem bestimmten Laptop haben, hat jeder Benutzer seine eigene lokale Datendatei mit seiner Datenpartition. Genau wie bei jeder anderen Datei dient die Windows-Sicherheit zur Beschränkung des Zugriffs der einzelnen Benutzer auf Datendateien. Wenn dem Benutzer seine Datei zur Verfügung steht, warum sollte die Anwendung dann alle Kundenkontakte statt nur die spezifischen Kontakte des Benutzers speichern? Warum sollten Sie Gehaltsinformationen lokal speichern, wenn der Benutzer nicht berechtigt ist, sie anzuzeigen oder zu bearbeiten? Neben den Sicherheitsaspekten ist dies auch eine Möglichkeit zur Partitionierung der lokal verwalteten Datenmenge. Bei diesem Modell ist das Konzept der rollenbasierten Sicherheit bedeutungslos. Statt einen komplexen Satz an Rollen lokal zu implementieren und zu verwalten, würden die meisten Anwendungen ein rollenbasiertes Sicherheitsmodell auf dem Server verwalten und die Rollen verwenden, um die entsprechenden Daten im lokalen Datenspeicher des jeweiligen Benutzers zu synchronisieren. Sicherheitsdesignleitlinie der SQL Server Express Edition Die SQL Server Express Edition wurde als Teil der Datendienstfamilie so ausgelegt, dass die Sicherheit an der Dienstgrenze angewendet wird. Beim Sichern von Daten auf Servern ist physische Sicherheit die wichtigste Verteidigungslinie. Es gibt eine physische Tür und oft viele hochtechnische Sicherheitsvorrichtungen zwischen Ihrem Feind und dem Computerraum, in dem Ihre Datenserver untergebracht sind. Wenn es Ihrem Feind gelingt, unversehrt in den Computerraum zu gelangen, muss er sich mit gültigen Anmeldeinformationen bei dem Computer anmelden. Wenn der Benutzer Administratorrechte hat und Zugriff auf den Server erhält, ist der Schutz Ihrer Daten nicht mehr gewährleistet. Wenn der Benutzer so weit gekommen ist, ist es wahrscheinlich einfacher, das physische Laufwerk oder den ganzen SQL Server 2005 Compact Edition und SQL Server 2005 Express Edition – Welche Edition ist die richtige für Sie? 15 Computer mitzunehmen. SQL Server Express Edition verlässt sich genau wie die übrigen Datendienst-SKUs stark auf physische Sicherheit, um zu verhindern, dass nicht berechtigte Personen auf die Datenbankdatei zugreifen. Es ist nicht einfach, in einen Computerraum einzubrechen, doch beim Herstellen einer Remoteverbindung zu einem Datendienst handelt es sich um eine Funktion. Das Herstellen einer Remoteverbindung ist eine Funktion, die bei der SQL Server Express Edition standardmäßig ausgeschaltet ist. Die Datendienstfamilie der SQL-Serverprodukte implementiert rollenbasierte Sicherheit und bietet mehrere Sicherheitsoptionen, die sich darauf beziehen, wie Verbindungen zum Server hergestellt werden. Die Datendiensteditionen können Verschlüsselung auf Tabellen-, Spalten- und Zeilenebene implementieren. Die Verbindung zur Datenbank muss autorisiert werden, bevor Daten zurückgegeben werden können. Der Manager für das Personalwesen kann berechtigt sein, Gehaltsinformationen anzuzeigen und zu bearbeiten, aber er kann die Produktpreise nicht ändern. Das hört sich doch ziemlich sicher an. Und das ist es auch! Die SQL Server-Datendienstproduktfamilie verfügt über einige der besten Sicherheitsfunktionen der Branche, indem Daten vor und während der Übermittlung gesichert werden. Berechtigungen in einem rollenbasierten Sicherheitsmodell werden in den Datendiensteditionen von besonderen Benutzern einschließlich Systemadministratoren, Datenbankadministratoren und Datenbankbesitzern zugewiesen. Für diese Benutzer mit hohen Sicherheitsberechtigungen bestehen keine oder nur wenige Einschränkungen beim Zugriff auf eine Datenbank, was bestimmte Implikationen hat, wenn die SQL Server Express Edition als lokaler Datenspeicher verwendet wird. Ein Systemadministrator beispielsweise hat vollständigen Zugriff auf jede beliebige SQL Server Express Edition-Datenbankdatei, die er besitzt. Wenn die für den lokalen Speicher verwendete Datenbankdatei nicht physisch geschützt wird und von einem Kriminellen gestohlen werden kann, könnte der Betreffende auf Ihre Daten zugreifen, indem er die Datenbank an seine Kopie der SQL Server Express Edition anhängt, bei der er Systemadministrator ist. SQL Server Express Edition-Benutzerinstanzen – eine kleine Einführung Eine vollständige Beschreibung der Benutzerinstanzen geht über den Rahmen dieses Artikels hinaus. Ausführliche Informationen sind jedoch auf der MSDN-Website erhältlich. Hier geht es nur um die Sicherheitsimplikationen von Benutzerinstanzen und deren Auswirkungen auf die Auswahl eines lokalen Datenspeichers. Eine Herausforderung, der Entwickler bei MSDE gegenüberstanden, war die Schwierigkeit, eine Datenbank an eine der MSDE-Instanzen anzuhängen. Für das Anhängen einer Datenbank an MSDE sind für den Benutzer, der die Anwendung ausführt, Datenbankbesitzerrechte erforderlich. Dies erschwerte es den Entwicklern sehr, MSDE-Datenbankdateien bereitzustellen. Auch das Verwalten ihrer lokalen Datenbankdateien mit ihren Projekten war schwierig. Wie an anderer Stelle bereits beschrieben, erhalten Benutzer durch die Bereitstellung von Konten auf allen Computern, sodass sie Datenbankdateien anhängen können, praktisch Highlevel-Zugriff auf alle Datenbanken, die an die SQL Server Express Edition angehängt sind. Durch eine derartige Benutzerkonfiguration wird die Möglichkeit eingeschränkt, Benutzer daran zu hindern, auf die Daten eines anderen Benutzers zuzugreifen, der mit demselben Server verbunden ist. Die Daten der einzelnen Benutzer getrennt zu halten, ist oft eine wesentliche Anforderung an die lokale Datenspeicherung. Um diese Trennung von Benutzerdaten zu implementieren und die Probleme im Zusammenhang mit dem Anhängen von Datenbankdateien zu lösen, wurde 2005 bei der SQL Server Express Edition eine neue Funktion eingeführt: die so genannten Benutzerinstanzen. Bei Benutzerinstanzen wird eine besondere Verbindungszeichenfolge verwendet, wenn eine Anwendung eine Verbindung zur SQL Server Express Edition herstellt. Wenn die Hauptinstanz diese besondere Verbindungszeichenfolge sieht, überprüft und/oder erstellt sie SQL Server 2005 Compact Edition und SQL Server 2005 Express Edition – Welche Edition ist die richtige für Sie? 16 eine neue Instanz von SQL Server Express im Kontext des Benutzers und hängt die Datenbank an den neuen Prozess an. Dieser zusätzliche Prozess wird als zusätzlicher Windows-Dienst unter den Anmeldeinformationen des Benutzers ausgeführt. Dieser neue Windows-Dienst ist von der Hauptinstanz der SQL Server Express Edition völlig unabhängig und verfügt über eigene Kopien der Systemdatenbanken (Stamm, TempDB und Modell). Diese „Benutzerinstanz“-Datenbanken sind in spezifischen Ordnern des Benutzers vorhanden. Da die Benutzerinstanz im Kontext des Benutzers ausgeführt wird, gilt dieser Benutzer als Datenbankbesitzer und kann alle notwendigen Aufgaben im Zusammenhang mit der Arbeit mit der Express Edition durchführen. Zusätzliche Benutzer auf dem gleichen Computer haben keinen Zugriff auf andere Benutzerinstanzen, sondern nur auf ihre eigenen. Benutzerinstanzen ermöglichen die Trennung der Benutzer, indem für jeden Benutzer eine einmalige Instanz der Express Edition bereitgestellt wird. Der Benutzer erhält jedoch auch die Kontrolle über die Datenbanken, die an die Benutzerinstanz angehängt sind. Wenn die Datenbank ausgeführt wird, kann der Besitzer der Benutzerinstanz jeden Teil der Datenbank einschließlich Schema, Daten und Funktionskonfiguration ohne Rücksicht auf Berechtigungen, Kennwörter oder Verschlüsselung, die bei den Datenbankobjekten angewendet werden, anzeigen und bearbeiten. Auch hier ist der Schutz der Datenbankdatei durch physische Sicherheit wichtig. Bei lokalen Datenszenarios, in denen Laptops regelmäßig gestohlen werden, ist es wichtig, sich vor Augen zu führen, dass Express Edition-Benutzerinstanzen eine weitere Möglichkeit für nicht autorisierte Benutzer sein könnten, Zugriff auf Ihre Datenbank zu erlangen, wenn sie die Datei in die Hände bekommen. Andere Sicherheitsbedrohungen Nicht autorisierte Benutzer daran zu hindern, sich mit Ihrer Datenbank zu verbinden, gehört primär zum Aufgabenbereich der meisten Datenbankentwickler. Es gibt jedoch noch andere Bedrohungen, die zu unerlaubtem Zugriff auf Ihre Daten führen können. Beispiele für diese anderen Bedrohungen sind Medienangriffe, bei denen die Datenbankdatei zum Ausführen von unerlaubtem Code auf Ihrem Computer verwendet wird, und gestohlene Hardware, das heißt, der physische Computer mit Ihrer Datendatei wird gestohlen. Phishing und Medienangriffe In der Regel denken wir daran, Datendateien vor Diebstahl zu sichern. Ein anderer Aspekt der Sicherheit besteht darin, wie Ihr Feind Informationen von Ihnen erhalten kann. Natürlich könnte man Ihre Datenbank stehlen, worauf Sie sich vorbereitet haben, doch was passiert, wenn Code in eine Datenbank eingefügt wird, die Sie zufällig öffnen? Sicherlich haben Sie schon einmal eine E-Mail erhalten, in der Sie aufgefordert wurden, eine angehängte Datei zu öffnen. Medienangriffe werden verübt, indem unerlaubter Code in eine Datei eingefügt und der Benutzer davon überzeugt wird, dass die Datei von einer vertrauenswürdigen Quelle stammt. Beim Öffnen der Datei wird der unerlaubte Code ausgeführt und führt die ihm zugedachte Aufgabe aus. Ein Beispiel für einen Medienangriff ist ein Word-Makrovirus. Die SQL Server Express Edition unterstützt ein umfassendes Ereignismodell, das es Entwicklern ermöglicht, Anwendungen zu erstellen, die auf bestimmte Ereignisse innerhalb der Datenbank reagieren. So können Sie beispielsweise jedes Mal, wenn der Datenbank bestimmte Datentypen hinzugefügt werden, eine benutzerdefinierte Protokollierung durchführen oder sogar ein gespeichertes Verfahren ausführen, wenn eine Datenbankdatei angehängt ist. Die erweiterten Programmierungsfunktionen der SQL Server Express Edition sorgen für erhebliche Leistungsstärke bei der Anwendungsentwicklung, doch sie können SQL Server 2005 Compact Edition und SQL Server 2005 Express Edition – Welche Edition ist die richtige für Sie? 17 auch zum Ausführen von unerlaubtem Code verwendet werden, der bestimmte Aktionen durchführen und beispielsweise Daten an nicht autorisierte Personen senden kann. Microsoft betrachtet die SQL Server MDF-Dateien als Sicherheitsentsprechung zu .EXE-Dateien. Sie sollten daher mit demselben Misstrauen behandelt werden wie .EXE-Dateien von unbekannten Quellen. Um die Möglichkeit der Ausführung von unerlaubtem Code zu verringern, müssen SQL Server Express Edition-Datendateien immer eine MDF-Dateierweiterung haben. Benutzer sollten keine Datenbankdateien von unbekannten Quellen anhängen. Zudem sollten Sie sich nicht durch einen Trick dazu verleiten lassen anzunehmen, dass eine Datenbankdatei von einer vertrauenswürdigen Quelle stammt. SQL Server Compact Edition-Datendateien sind dokumentensicher Da SQL Server Compact Edition-Datendateien keine gespeicherten Verfahren oder anderen Code innerhalb der Datenbank unterstützen, gilt dieses codefreie Dateiformat als dokumentensicher. Im Gegensatz zu den Datendienst-Dateiformaten hat die Compact Edition keine „Funktion“, die es einem Benutzer ermöglicht, Code in die Datenbank zu integrieren, der dann als Ergebnis eines Ereignisses ausgeführt wird. Dank des dokumentensicheren Formats können Compact Edition-Datendateien jede beliebige Dateierweiterung haben, sodass Sie einer Rezeptanwendung eine .recipe-Erweiterung zuordnen können. Durch Doppelklicken auf Ihre .recipe-Datei könnte eine Rezeptanwendung gestartet werden, ähnlich wie Sie ein Microsoft Office-Dokument öffnen können. SQL Server Compact Edition-Dateien sind zwar nicht so leistungsstark wie Datendienstdateien, aber Sie müssen keine Bedenken haben, dass in Ihrem Namen Code ausgeführt wird. Sichern von Daten von einem gestohlenen Laptop Wenn Daten im Außendienst verfügbar gemacht werden oder vorhanden sind, besteht immer die Möglichkeit, dass sie in die falschen Hände gelangen. Dies gilt sowohl für gedrucktes als auch elektronisches Material. Es ist schwieriger, gedruckte Daten mit einem Kennwort zu schützen, aber elektronisches Material stellt eine größere Versuchung für mögliche Feinde dar, da es normalerweise größere Datensets enthält und schnell gegen Sie verwendet werden kann. Die lokale Speicherung von Daten erhöht die Chance, dass sie in die Hände von Feinden gelangen. Daten können auch von einem zentralen Datendienst gestohlen werden. Das Stehlen lokaler Daten ist für Ihren Feind möglicherweise weniger von Interesse, da die lokal gespeicherten Daten wahrscheinlich eine Teilmenge der über Ihren Datendienste verfügbaren Daten sind. Sicherheit ist niemals absolut. Unternehmen, die Tresore verkaufen, garantieren nicht, dass diese einbruchsicher oder feuerfest sind. Die Industrie bewertet Tresore anhand der Zeit, die ein professioneller Einbrecher braucht, um ihn zu knacken. Bei ausreichender Zeit wird ein professioneller Einbrecher es schaffen. Wenn ein professioneller Dieb die Datei in seine Hände bekommt, wird er ebenfalls bei ausreichender Zeit an die Daten kommen. Doch wie jeder Fan von TV-Krimis weiß, gibt es viele Kriminelle, die keine Profis sind und nicht sehr weit kommen werden, wenn einige grundlegende Sicherheitsebenen vorhanden sind. Ein Beispiel, das ich gerne anführe, ist „der Fallenfaktor“. Wenn ich einen 100-Euro-Schein über das Wochenende mit Tesafilm an meine Bürotür kleben würde, gehe ich davon aus, dass er gestohlen wird. Ich wäre enttäuscht, aber nicht überrascht und würde nicht viel Sympathie von meinen Kollegen erwarten. Wenn ich denselben Geldschein jedoch in einen Briefumschlag in meine verschlossene Schreibtischschublade legen würde, wären meine Kollegen bei einem Diebstahl wahrscheinlich empört, und das für den Gebäudeschutz verantwortliche Unternehmen würde dem Vorfall Beachtung schenken. Die beste Möglichkeit zum Sichern Ihrer Daten besteht darin, niemandem Zugang zu gewähren. Wie bei anderen „sicheren“ Richtlinien gilt es jedoch auch hier, die Realität nicht aus den Augen zu verlieren. Die nächstbeste Möglichkeit besteht darin, Ihre Risiken SQL Server 2005 Compact Edition und SQL Server 2005 Express Edition – Welche Edition ist die richtige für Sie? 18 zu begrenzen, indem Sie die Datenmenge beschränken, auf die Ihre Feinde zugreifen können. Banken und Geldautomaten werden auf der Grundlage des maximalen Geldbetrags versichert, der dort vorhanden ist, wodurch die Risiken minimiert wird. Es wird der Bargeldbetrag berechnet, der zur Aufrechterhaltung ihrer Geschäftstätigkeit erforderlich ist. Wenn Sie die Datenmenge einschränken, die Ihre Benutzer benötigen, um produktiv zu sein, verringern Sie Ihre Risiken. Benötigen Ihre Benutzer die Kreditkartennummern aller Ihrer Kunden? Doch genau wie in einem Geldautomaten ein angemessener Bargeldbetrag vorhanden sein muss, damit das Gerät Gewinn bringt, sollten Sie Ihre Benutzer nicht zu sehr einschränken, da sie sonst weniger produktiv arbeiten und Ihrem Geschäft weniger Gewinn bringen. Gewinnträchtige Unternehmen arbeiten am besten, wenn ihre Mitarbeiter gewisse Vollmachten haben. Die Nutzung der Sicherheitsfunktionen von Windows Wenn Sie die richtigen Daten für jeden Client gefunden haben, müssen Sie diese Daten lokal sichern. Es gibt zwei Kategorien zum Anzeigen von Daten. Die Daten können zum einen über ihre Anwendung, zum anderen direkt als Rohdaten angezeigt werden. Die SQL Server Compact Edition bietet hier einen kleinen Vorteil, da Sie die Datenbank mit einem Kennwort schützen und die Datei verschlüsseln können. SQL Server Express Edition-Daten können Kennwörter, die Sie für die Datenbank einrichten, durch Anhängen der Datenbank mit der Benutzerinstanzfunktion umgehen. Doch wie bei Tresoren stellt der Kennwortschutz von Datenbanken nicht sicher, dass Ihr Feind nicht auf die Daten zugreifen kann – der Prozess wird lediglich verlangsamt. Und an dieser Stelle können die Sicherheitsfunktionen von Windows wirksam eingesetzt werden. Die Implementierung einer sicheren Kennwortrichtlinie ist dabei der Ausgangspunkt. Wenn Ihre Benutzer ihren Laptop jedoch nicht sperren, muss sich der nicht autorisierte Benutzer den Laptop nur schnappen, um sich dieselben Daten anzusehen, auf die Sie Zugriff haben. Benutzer vergessen oft, ihren Computer zu sperren, wenn sie diesen unbeaufsichtigt stehen lassen, doch Windows bietet zwei Möglichkeiten zum automatischen Sperren von Computern. Verwenden Sie die Eigenschaften der Energieoptionen in der Systemsteuerung, die Sie zur Eingabe eines Kennworts auffordern, wenn Ihr Laptop nach dem Standby die Arbeit wieder aufnimmt. Diese Option ist in Abbildung 2 dargestellt. Abbildung 2: Konfigurieren der Eigenschaften der Energieoptionen SQL Server 2005 Compact Edition und SQL Server 2005 Express Edition – Welche Edition ist die richtige für Sie? 19 Die zweite Windows-Sicherheitsfunktion nutzt die Bildschirmschonereigenschaften, um den Laptop zu sperren, sobald der Bildschirmschoner läuft. Es kann jedoch ärgerlich sein, wenn die Zeitschwelle niedrig eingestellt wird, da der Benutzer ständig sein Kennwort eingeben muss. Viele neue Laptops verfügen über einen Fingerabdruckleser. Diese Methode ist zwar nicht absolut sicher, gleicht jedoch die Sicherheitsanforderungen durch Benutzerfreundlichkeit aus, indem nicht autorisierte Benutzer gebremst werden, während die Arbeit Ihrer Benutzer erleichtert wird. Diese Option ist in Abbildung 3 dargestellt. Abbildung 3: Konfigurieren der Bildschirmschonereigenschaften Windows Encrypted File System (EFS) Die letzte Sicherheitsfunktion, die es zu erwähnen lohnt, ist das Windows Encrypted File System (EFS), das die Verschlüsselung Ihrer Datendatei auf Betriebssystemebene ermöglicht. Sowohl die SQL Server Express als auch die SQL Server Compact Edition können EFS nutzen. Durch die Auswahl von Eigenschaften Ihrer Datendatei können Sie die erweiterten Features auswählen und die Option zum Verschlüsseln der Datei auf Betriebssystemebene aktivieren. SQL Server Compact-Edition-Datendateien werden immer prozessintern mit der Hostanwendung geöffnet, die im Kontext des aktuellen Benutzers ausgeführt wird, sodass EFS immer verfügbar ist. Die SQL Server Express Edition kann EFS nur verwenden, wenn die Datei in Verbindung mit Benutzerinstanzen verwendet wird. Datenbankdateien, die mit den Hauptinstanzen der SQL Server Express Edition verbunden sind, können EFS nicht verwenden, da die Datei vom SQL Server Express Edition-Dienstkonto und nicht vom aktuellen Benutzer geöffnet wird. Bei der Verwendung von EFS kann der Benutzer die Datei nicht kopieren, ohne vorher zu bestätigen, dass die Datendatei dann nicht mehr verschlüsselt werden kann. Windows EFS hindert Benutzer auch daran, Dateien, die von anderen Benutzern verschlüsselt wurden, zu öffnen und zu kopieren, und verhindert das Bereitstellen von Festplatten oder den Zugriff über einen zufällig freigegebenen Ordner, der über Ihre drahtlose Netzwerkkarte verfügbar ist. Abbildung 4 zeigt, wie EFS konfiguriert wird, und die Warnungen, die angezeigt werden. SQL Server 2005 Compact Edition und SQL Server 2005 Express Edition – Welche Edition ist die richtige für Sie? 20 Abbildung 4: Konfigurieren von EFS Die Kombination der Sicherheitsfunktionen der SQL Server Express oder SQL Server Compact Edition mit den Sicherheitsfunktionen von Windows bietet eine höhere Sicherheitsstufe als jeder Mechanismus für sich. Verbesserte Sicherheit ermöglicht die wirksamere Nutzung der erhöhten Produktivität, die zur Verfügung steht, wenn Daten lokal gespeichert werden und Benutzer nicht mit dem Netzwerk verbunden sein müssen, um auf Daten zuzugreifen. Leistungsmessung Als Antwort auf die Frage, wie gut die Leistung einer Datenbank ist, wird meistens die Anzahl der Transaktionen pro Sekunde genannt. Wie viele gleichzeitigen Abfragen, Einfügungen, Aktualisierungen und Löschungen können in einem Ein-Sekunden-Intervall durchgeführt werden? Bei einem lokalen Datenspeicher ist es wichtig, Ergebnisse schnell zurückzugeben, doch der Benutzer hat nur eine bestimmte Tippgeschwindigkeit. Selbst beim Verwenden eines Barcodescanners ist die Datenmenge begrenzt, die der Benutzer in einem bestimmten Zeitraum eingeben kann. Und wie viele Fragen kann ein einzelner Benutzer an seinen lokalen Datenspeicher stellen? Lokale Datenspeicher sind Komponenten einer Gesamtanwendung: einer Anwendung, die dieselben Ressourcen wie die Datenbank nutzt. Benutzer führen mehrere Aufgaben durch, indem gleichzeitig mehrere Anwendungen ausgeführt werden. Bei einem typischen Benutzer ist wahrscheinlich Outlook geöffnet, um E-Mails und Kalendereinträge zu überprüfen. Möglicherweise bearbeitet er eine PowerPoint-Präsentation, wobei er Microsoft Word zum Verfolgen seiner Notizen einsetzt. Instant Messenger und/oder Office Communicator werden minimiert in ausgeführt und warten auf die Eingabe der neuesten Verkaufszahlen. Internet Explorer aktualisiert ständig die aktuellen Datenverkehrsbedingungen, während Sie sich Ihre Lieblingsmusik mit dem Windows Media Player anhören. Outlook erinnert Sie an eine Besprechung mit Ihrem Partner im örtlichen Café. Dort wollen Sie schnell zeigen, welche Fortschritte Sie mit der Präsentation gemacht haben, und Sie schließen daher Ihren Laptop, der sich nun im Standbymodus oder Ruhezustand befindet, ohne dass die ausgeführten Anwendungen geschlossen werden. Unterwegs vergessen Sie, wo sich das Café befindet. Während Sie an einer Ampel warten, öffnen Sie den Laptop, um Ihre Anwendungen wieder aufzunehmen und sich den Kalender anzeigen zu lassen. SQL Server 2005 Compact Edition und SQL Server 2005 Express Edition – Welche Edition ist die richtige für Sie? 21 Können Sie sich die Reaktion Ihres DBA vorstellen, wenn Sie ihn bitten würden, die Datenbank für diese Umgebung zu optimieren? In einer Clientumgebung messen Sie die Leistung anhand der Gesamtproduktivität des Benutzers. Datendienste werden in der Regel auf dedizierten Servern gehostet und angepasst, sodass sie Tausende von Vorgängen pro Sekunde durchführen. Sie werden so optimiert, dass sie alle verfügbaren Ressourcen nutzen, ähnlich wie Sattelzüge, die enorme Lasten an die verschiedensten Standorte transportieren. Sie brauchen etwas länger, um anzufahren und zu halten, aber wenn sie erst einmal in Fahrt sind, sind sie enorm leistungsfähig. Demgegenüber kann ein Motorrad in Sekundenschnelle starten und anhalten. Es ist im Stadtverkehr flexibel, kann in der kleinsten Parklücke parken, und der Fahrer kann Kuriersendungen innerhalb von Minuten ausliefern. Ein Sattelzug ist für das Ausliefern von Kuriersendungen im Stadtverkehr wahrscheinlich nicht das geeignete Fahrzeug, aber dafür kann er sehr viel mehr Material auf langen Strecken transportieren als ein Motorrad. Die SQL Server Compact Edition wird prozessintern mit der Anwendung ausgeführt. Da diese Edition für Geräte ausgelegt wurde, ist sie in Bezug auf Ressourcen sehr effizient und zwingt Anwendungen beim Ausführen von Anfragen nicht zum Paging auf dem Datenträger. Da die Compact Edition nicht als Dienst ausgeführt wird, verbraucht sie keine Ressourcen, wenn sie nicht verwendet wird, was sich direkt auf die Zeit beim Starten, Herunterfahren, Unterbrechen und Fortsetzen auswirkt. Die SQL Server Express Edition wird heruntergefahren, wenn das Programm mehrere Minuten lang nicht verwendet wird. Im Vergleich zu verwandten Programmen ist dieses Programm bei der Reduzierung des aktiven Speichers auf ein erstaunlich kleines Workingset viel effizienter. Da die SQL Server Express Edition jedoch für eine serverbasierte Umgebung entwickelt wurde, wird bei jeder angehängten Datenbank eine Wiederherstellung ausgeführt, wenn das Programm den Ruhezustand wieder aufnimmt. Wenn das Programm heraufgefahren wird, verbraucht es mehr Speicher, da es darauf eingestellt ist, Tausende von Transaktionen und mehrere Clients gleichzeitig zu verarbeiten. Beim Aufrufen des Ruhezustands muss ein Paging des gesamten Speichers auf dem Datenträger durchgeführt werden, selbst wenn er zu diesem Zeitpunkt nicht von Anwendungen verwendet wurde. Schlussbemerkung Es gibt keine Einheitsgröße. Die Auswahl des richtigen Tools für die entsprechende Aufgabe ist bei der Auswahl eines lokalen Datenspeichermoduls wichtig. Sowohl die SQL Server 2005 Express Edition als auch die SQL Server 2005 Compact Edition sind kostenlos erhältlich. Bei der SQL Server Compact Edition, die als lokaler Standarddatenspeicher für Clientanwendungen ausgelegt ist, stehen Telefone, PDAs, Tablet PCs und Desktops im Mittelpunkt. Das Programm bietet einzigartige Funktionen für die Clientbereitstellung und Sicherheit. Die als Datendienst für Anwendungen ausgelegte SQL Server Express Edition stellt ein konsistentes Programmiermodell als Datendienstfamilie bereit und bietet eine Überlappung von Szenarios für den lokalen Speicher. Ziel dieses Artikels ist es, die Herausforderungen an die lokale Datenspeicherung und die funktionalen Vorteile des jeweiligen Datenbankmodulmodells zu beschreiben und die Vorund Nachteile zu identifizieren, die bei der Wahl eines lokalen Datenspeichers beachtet werden müssen. Durch die Verwendung der Microsoft-Plattform werden Unternehmen und Entwickler in die Lage versetzt, einsatzbereite Anwendungen für Mitarbeiter zu erstellen, bei denen Geschäftsdaten jederzeit und überall genutzt werden können. SQL Server 2005 Compact Edition und SQL Server 2005 Express Edition – Welche Edition ist die richtige für Sie? 22 Weitere Informationen: http://www.microsoft.com/sql/ Die in diesem Dokument enthaltenen Informationen stellen die behandelten Themen aus der Sicht der Microsoft Corporation zum Zeitpunkt der Veröffentlichung dar. Da Microsoft auf sich ändernde Marktanforderungen reagieren muss, stellt dies keine Verpflichtung seitens Microsoft dar, und Microsoft kann die Richtigkeit der hier dargelegten Informationen nach dem Zeitpunkt der Veröffentlichung nicht garantieren. Dieses Whitepaper dient nur zu Informationszwecken. MICROSOFT SCHLIESST FÜR DIESES DOKUMENT JEDE GARANTIE AUS, SEI SIE AUSDRÜCKLICH ODER KONKLUDENT. Die Benutzer/innen sind verpflichtet, sich an alle anwendbaren Urheberrechtsgesetze zu halten. Unabhängig von der Anwendbarkeit der entsprechenden Urheberrechtsgesetze darf ohne ausdrückliche schriftliche Erlaubnis der Microsoft Corporation kein Teil dieses Dokuments für irgendwelche Zwecke vervielfältigt oder in einem Datenempfangssystem gespeichert bzw. darin eingelesen oder übertragen werden, unabhängig davon, auf welche Art und Weise oder mit welchen Mitteln (elektronisch, mechanisch, durch Fotokopieren, Aufzeichnen usw.) dies geschieht. Microsoft kann Inhaber von Patenten bzw. Patentanträgen, von Marken, Urheberrechten oder anderem geistigen Eigentum sein, die den Inhalt dieses Dokuments betreffen. Das Bereitstellen dieses Dokuments gibt Ihnen jedoch keinen Anspruch auf diese Patente, Marken, Urheberrechte oder auf sonstiges geistiges Eigentum, es sei denn, dies wird ausdrücklich in den schriftlichen Lizenzverträgen von Microsoft eingeräumt. © 2005 Microsoft Corporation. Alle Rechte vorbehalten. Die in den Beispielen genannten Unternehmen, Organisationen, Produkte, Domänennamen, E-Mail-Adressen, Logos, Personen, Orte und Ereignisse sind frei erfunden. Jede Ähnlichkeit mit tatsächlichen Unternehmen, Organisationen, Produkten, Domänennamen, E-Mail-Adressen, Logos, Personen, Orten oder Ereignissen ist rein zufällig. Microsoft, Visual Basic, Visual Studio, Win32, Windows und Windows Server und SQL Server sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Alle anderen Marken sind Eigentum der jeweiligen Besitzer. SQL Server 2005 Compact Edition und SQL Server 2005 Express Edition – Welche Edition ist die richtige für Sie? 23