Ein neuer Windows 2012 R2 Webserver zeigte per Default fleißig alle angelegten User an. Um das Problem in den Griff zu bekommen, genügt ein Aufruf der
secpol.msc
Dort kann man dieser Anleitung folgen, entnommen von http://social.technet.microsoft.com/
Open Computer Configuration, Security Options and on the right hand side, scroll down to Interactive logon: Do not display last user name. Double click on this entry and you will be presented with a dialog box that has two options – Enabled and Disabled (default). Change this setting to Enabled, and then click on the OK button.
Open Interactive logon: Do not require CTRL+ALT+DEL and select the Disable option and click OK.
Regelmäßig nach einer Wiederherstellung einer bestehenden Datenbank auf einem neuen Server müssen die Logins, die serverseitig gespeichert und angelegt werden, mit dem User der Datenbank verbunden werden. Ansonsten erhält der Login auf die Datenbanken einfach keinen Zugriff.
Dafür gibt es drei Möglichkeiten:
- Man kann den User in der Datenbank entfernen und den User einfach auf Serverebene neu anlegen. Das SQL Managmentstudio bietet hierbei die Möglichkeit, die Rechte auf einer Datenbank zu erteilen. Aber dabei verliert man ALLE bereits konfigurierten Rechte, die der User in der Datenbank hatte. Diese Lösung ist somit nicht empfehlenswert.
- Der Microsoft SQL Server bietet die Procedure sp_change_users_login, mit der ein neu angelegter Login im Server mit dem User der Datenbank verbunden werden kann. Ich nehme dafür eigentlich immer einen identischen Namen, um Verwechslungen zu vermeiden:
EXEC sp_change_users_login 'Update_One', 'User1', 'User1'; |
EXEC sp_change_users_login 'Update_One', 'User1', 'User1';
Dieser Befehl muss für jeden User in jeder Datenbank ausgeführt werden, kann aber leicht in einem Skript vorbereitet werden.
- Abgelöst wird diese vorstehende Procedure durch folgenden SQL Befehl: ALTER USER. In der Anwendung kann man dann schreiben:
ALTER USER User1 WITH LOGIN = User1; |
ALTER USER User1 WITH LOGIN = User1;
Auch dieser Befehl muss für jeden User in jeder Datenbank ausgeführt werden und kann leicht in einem Skript vorbereitet werden.