5/03: MSDE

Installation und Konfiguration MSSQL-Servers (MSDE) unter Windows

1. Meine Voraussetzungen:

  • Windows XP

2. Installation und Konfiguration

Nachdem die MSDE heruntergeladen wurde, muss das Setup entweder direkt mit Parametern oder mit einer Batch-Datei gestartet werden. Der einzig zwingende Parameter ist SAPWD=“xxxxxx“, wobei die X durch ein Passwort für den sa Benutzer ersetzt werden muss. Ein hilfreicher Parameter ist ausserdem SECURITYMODE. Mit SECURITYMODE=SQL kann man die MSDE im mixed Mode installieren, d.h., es ist nicht nur die Windows Authentifizierung erlaubt. Nachträglich lässt sich dieser Mode bei der MSDE nur per Registry-Eingriff ändern. Details dazu unter http://support.microsoft.com/?kbid=325022

3. osql: Login, Prompt und Abfragen

Da mit der MSDE kein Enterprise Manager mitgeliefert wird, muss man auf das Kommandozeilen-Tool osql zurückgreifen. Mit folgendem Aufruf kann man sich „einloggen“ und danach Befehle ausführen:

osql -U sa -P xxxxx

Damit loggt man sich mit dem Benutzer sa ein. Bei Erfolg steht ein Prompt (>) zur Verfügung. Dort können beliebige SQL-Befehle abgeschickt werden. Mit einem GO werden die Befehle ausgeführt.

Ist ist darauf zu achten, dass immer mit der richtigen (d.h. gewünschten) Datenbank gearbeitet wird. Daher sollte immer das Statement ‚use testdb‘ ausgeführt werden, um in diesem Fall mit der testdb-Datenbank zu arbeiten.

Ausserdem ist es möglich, direkt SQL Scripts oder einzelne Befehle auszuführen. Auch dazu zwei Beispiele:

osql -E -S PC11-SERVERMSDE -q „SELECT * from testdb.dbo.t_table“

osql -E -S PC11-SERVERMSDE -i test.sql

Anmerkung: diese Beispiele verwenden die integrierte Windows-Authentifizierung. Im Falle einer SQL-Authentifizierung würde der Aufruf wie folgt lauten: osql -U sa -P xxxx -Q „SELECT * from testdb.dbo.t_table“

4. osql: Restore und Backup von Datenbanken

1>RESTORE DATABASE testdb FROM DISK=’C:program filestestdatabasedb.bak‘ WITH REPLACE
2>GO

Diese Anweisung stellt eine Datenbank wieder her (db.bak) und speichert sie unter dem Namen testdb ab.

1>RESTORE DATABASE testdb FROM DISK=’C:program filestestdatabasedb.bak‘ WITH
2>MOVE ‚db_Data‘ to ‚C:ProgrammeMicrosoft SQL ServerMSSQLDatadbLog.mdf‘,
3>MOVE ‚db_Log‘ to ‚C:ProgrammeMicrosoft SQL ServerMSSQLDatadblog_log.ldf‘, REPLACE
4>GO

Diese Anweisung stellt ebenfalls eine Datenbank wieder her (db.bak) und speichert sie unter dem Namen testdb ab. Zusätzlich wird der Pfad für die Datenbank und das Log-File angegeben. Hier ist zu beachten, dass die Bezeichnung (im Beispiel ‚db_log‘ und ‚db_Data‘ fest vorgegeben sind. Und zwar stehen diese Bezeichnungen in der Datenbank, die man wiederherstellen will. Es gibt auch einen Befehl, der mittels osql diese Bezeichnungen ausgibt. Dieser folgt an dieser Stelle noch.

Das Backup kann mit folgender Anweisung erstellt werden:

osql -U sa -P xxxxx -Q „BACKUP DATABASE testdb TO DISK=’c:testdb.bak'“

5. osql: Logins and DB-Users

EXEC sp_addlogin ‚Username‘, ‚password‘, ‚testdb‘

Diese Anweisung erstellt einen Login (auf dem Server) mit der Bezeichnung ‚Username‘ und dem Passwort ‚password‘. Die Standard-Daenbank ist ‚testdb‘

EXEC sp_droplogin ‚Username‘

Diese Anweisung löscht den Login (auf dem Server) mit der Bezeichnung ‚Username‘.

EXEC sp_adduser ‚Username‘, ‚Username2‘, ‚db_owner‘

Diese Anweisung weist der Datenbank den User ‚Username2‘, basierend auf dem Login ‚Username‘ zu. Zusätzlich wird die Rolle ‚db_owner‘ vergeben. Wie mehrere Rollen bei einem DB-User aktiviert werden können, habe ich (noch) nicht herausgefunden.

EXEC sp_dropuser ‚Username2‘

Diese Anweisung löscht den DB-User ‚Username2‘ auf der aktuellen Datenbank.

Weitere Befehle folgen …

6. Zugriff über das Netzwerk

Um über ein Netzwerk (TCP/IP) auf die MSDE zugreifen zu können, muss das TCP/IP Protokoll aktiviert sein. Dazu muss das Programm SVRNETCN.exe manuell gestartet werden. Es befindet sich im Verzeichnis „C:ProgrammeMicrosoft SQL Server80ToolsBinn“ bei einer Standard-Installation. Dort kann das TCP/IP Protokoll aktiviert werden.

7. Weitere Probleme und Anregungen

Es kann sein, dass trotz korrekter Einstellungen der SQL-Server nicht gefunden wird. Ein Grund könnte sein, dass ähnlich dem Zugriff über das Netzwerk ein zusätzliches Protokoll aktiviert werden muss. Vorgehen ist dasselbe wie oben beschrieben, gewählt werden muss danach aber „Named Pipes“.

8. Literatur- und Internetverzeichnis

Last update: 01.10.2004