SQL Server: Von wiederhergestellten Datenbanken und verwaisten Benutzern

by wolfgang@gehirnwindung.de (Wolfgang) Mai 10, 2010 23:04

Immer wieder - jedoch insgesamt selten und aus dem Grund auch leider immer wieder mit einer Suche verbunden - brauch ich nach der Wiederherstellung einer Datenbank eine Stored Procedure, um die Benutzer aus der wiederhergestellten Datenbank und die Logins des Servers wieder in "Einklang" zu bringen.

Das Problem tritt z.B. auf, wenn die DB in einem anderem Server wiederhergestellt wird. Die Ursache ist, dass zwar evtl. der Login- und der Username gleich, die im Hintergrund wirkenden ID's aber unterschiedlich sind.

Nun. Hierfür gibt es die SP sp_change_users_login. Mit einem Administratorkonto (sysadmin oder db_owner) an der Datenbank anmelden und folgendes Ausführen:

Um eine Übersicht über die Benutzer zu bekommen, die verwaist sind

EXEC sp_change_users_login @action='Report'


Wenn der Login inkl. Passwort bereits eingerichtet ist, der Benutzer aber noch zugeordnet werden muss.

EXEC sp_change_users_login @action='Auto_Fix', @userNamePattern='user'


Wenn der Benutzer zugeordnet und ein Login mit Passwort erstellt werden muss (ist der Login bereits vorhanden, wird @password ignoriert)

EXEC sp_change_users_login @action='Auto_Fix', @userNamePattern='user', @password='password'


Man kann auch einen Benutzer mit einem Login verbinden, wenn die beiden nicht den gleiche Namen haben. Dann sieht es so aus (auch hier kann noch optional ein Passwort angegeben werden)

EXEC sp_change_users_login @action='Update_One', @userNamePattern='user', @loginName='login'

 

So, und beim nächsten Mal weiß ich, wo ich suchen muss ;)

Kommentare

10.05.2010 23:59:46 #

trackback

SQL Server: Von wiederhergestellten Datenbanken und verwaisten Benutze

Sie wurden gekickt (eine gute Sache) - Trackback von  dotnet-kicks.de

dotnet-kicks.de |

Kommentare sind geschlossen

Powered by BlogEngine.NET 1.6.1.6
Theme by Mads Kristensen | Modified by Mooglegiant and me ;)