SQL Server kennt seit jeher zwei Authentisierungsmodi: “Windows-Authentifizierungsmodus” und “SQL Server- und Windows-Authentifizierungsmodus”. Während der erste nur Verbindungen mit bestehenden Windows-Logins zulässt (also nur Windows-Domänenkonten oder lokale Windows-Benutzer des Servers selbst), ist es im anderen Modus zusätzlich möglich, sich mit Konten anzumelden, die nur innerhalb des SQL Server existieren.
Da SQL-interne Konten weniger gut geschützt sind als Windows-Konten, richtet das Setup-Programm des SQL Server (auch SQL Server Express) den Authentisierungsmodus standardmäßig nur für Windows-Konten ein. Leider ist es aber so, dass viele Applikationen partout nur mit der SQL-Authentisierung arbeiten wollen (auch wenn es meist technisch keinen Grund dafür gibt). Hat man hier bei der Installation nicht aufgepasst (oder ist die SQL-Installation automatisiert durchgelaufen), so muss man den Modus nachträglich umstellen.
Die grafische Methode
Am einfachsten geht das natürlich per GUI. Je nach Situation ist das grafische Verwaltungsprogramm allerdings gar nicht installiert. Wer den SQL Server Express intensiver nutzen möchte, sollte sich daher durchaus das Express-GUI installieren.
[SQL 2005: Microsoft SQL Server Management Studio Express]
http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=c243a5ae-4bd1-4e3d-94b8-5a0f62bf7796
[Microsoft SQL Server 2008 Management Studio Express]
http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=08e52ac2-1d62-45f6-9a4a-4b76a8564a2b
Dort ruft man per Rechtsklick auf den Server dessen Eigenschaften auf.Sodann befindet sich die gesuchte Einstellung unter “Sicherheit”.
Wichtig: Nach dem Umstellen muss man den Dienst “SQL Server” neu starten!
Außerdem ist es nötig, das sa-Konto zu aktivieren und mit einem Kennwort zu versehen. Alternativ kann man auch ein neues Konto erzeugen.
sa-Konto aktivieren
Das geht im GUI über den Eintrag “Sicherheit/Anmeldungen”:
sa-Konto mit neuem Kennwort versehen …
… und aktivieren.
Neues SQL-Adminkonto einrichten
Auch hierzu im GUI nach “Sicherheit/Anmeldungen” navigieren und per Rechtsklick eine “Neue Anmeldung” erzeugen. Dort zunächst Name, SQL-Anmeldemodus und Kennwort wählen …
… und dann unter “Serverrollen” die Rolle “sysadmin” zuweisen.
Die nichtgrafische Methode
Wer sich die Installation des Management Studio für diesen Zweck ersparen will, hat aber auch eine Möglichkeit. Die Anleitung gilt für SQL 2005 und SQL 2008 Express.
- Registry-Editor starten.
- Navigieren zu: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server
- Dort den Unterschlüssel für die gewünschte Instanz heraussuchen (in meinem Fall: MSSQL10.SQLEXPRESS).
- darunter in den Schlüssel MSSQLServer wechseln. In den Details steht der Eintrag “LoginMode”.
- Der Modus steht standardmäßig auf 1 (Windows-Authentisierung). Diesen ändern auf 2 (SQL- und Windows-Authrntisierung).
- Registry-Editor beenden.
- Dienst SQL Server neu starten.
Damit ist man aber leider noch nicht fertig. Nun muss das sa-Konto noch aktiviert und mit einem Kennwort versehen werden. Je nach Applikation kann man das sa-Konto ggf. auch inaktiv lassen und stattdessen ein neues Konto erzeugen.
sa-Konto aktivieren
Das sa-Konto kann man in SQL 2005 und SQL 2008 mit dem Kommandozeilenprogramm osql bearbeiten. Vorsicht, das ist etwas eigen.
Lautet der Name der SQL-Server-Instanz “SQLEXPRESS” (das ist Standard), so startet man osql mit folgender Kommandozeile:
osql –E –S .\SQLEXPRESS
Dann führt man dort folgende Kommandofolge aus (nur die roten Teile eintippen!):
1> ALTER LOGIN sa ENABLE
2> GO
1> ALTER LOGIN sa WITH PASSWORD = ‚Mein geheimes Kennwort!‘
2> GO
1> quit
Nun sollte der Login als sa mit dem vergebenen Kennwort (bitte ein starkes Kennwort wählen!) möglich sein.
Neues SQL-Adminkonto einrichten
Statt den sa-Account zu nutzen, kann man auch ein neues Adminkonto erzeugen. Das geht so:
Lautet der Name der SQL-Server-Instanz “SQLEXPRESS” (das ist Standard), so startet man osql mit folgender Kommandozeile:
osql –E –S .\SQLEXPRESS
Dann führt man dort folgende Kommandofolge aus (nur die roten Teile eintippen!):
1> EXEC sp_addlogin ‚MeinAdmin‘, ‚Mein supergeheimes Kennwort!‘
2> GO
1> EXEC sp_addsrvrolemember ‚MeinAdmin‘, ’sysadmin‘
2> GO
1> quit
Jetzt sollte man sich mit diesem neuen Konto auf SQL-Ebene anmelden können.
Referenz
[HOWTO: Configure Microsoft SQL Server for Mixed Mode Authentication – Eduzine©]
http://eduzine.edujini-labs.com/archives/24-HOWTO-Configure-Microsoft-SQL-Server-for-Mixed-Mode-Authentication.html
http://faq-o-matic.net/?p=1771