SQL Server: DB von anderem SQL Server übernehmen (Owner ungleich SA)

Wenn man eine Datenbank von einem auf den anderen SQL Server umziehen will und die DB einen Owner ungleich dem SA hatte, wird man auf das Problem stoßen, dass der Owner auf dem neuen System sich nicht auf den Namen setzen lässt, den man bisher verwendet hatte. Der Hintergrund ist folgender:

Vorweg zum Verständnis:
Auf jedem SQL Server gibt es Logins auf Serverebene und User auf DB Ebene. User auf DB Ebene können nur aus den Logins auf Serverebene entspringen. Zudem hat jeder Login (und der dazugehörige User) eine sogenannte SID.

Problem:
Wenn man nun eine DB über Backup oder ähnliches auf einen anderen SQL Server übernimmt, ist in der DB der User gespeichert und die DB weiß auf welchen Login (Serverebene) er zu verweisen hat. Selbst wenn man auf dem neuen Server einen Login wie auf dem alten Server anlegt, heißt dieser zwar wie gewünscht, hat aber eine andere SID. Es wird also so nicht funktionieren!

Lösung:
Auf dem alten Server den Login und die SID auslesen auf den der User zeigte:

select sid, name from sys.syslogins where name=’Paul‘

(Man kann per select sid, name from sys.sysusers where name=’Paul‘ auch auf der alten DB nach der SID des Users suchen.)

Nun haben wir die SID. Nun geht man auf den neuen Server und erstellt den Login dort mit der passenden SID:

create login Paul with password=’xyz‘, sid=0x084981BC780B3140AA7EDE74822CB006 , CHECK_POLICY=OFF

Der Login besteht nun genauso wie auf dem alten Server. Man kann nun die Datenbank auf dem neuen Server importieren. Der User auf DB Ebene wird nun auf den Login auf Serverebene verweisen.
Evtl. setzt der SQL Server den DBOwner der umgezogenen DB auf SA. Dies lässt sich auch ganz einfach ändern. Einfach an der DB folgenden Qry absetzen:

DB Owner ändern:
exec sp_changedbowner ‚Paul‘

Vorsicht: Um diesen Befehl nutzen zu können muss man mit einem Konto vom Typ Sysadmin eingeloggt sein (was man aufgrund der obrigen Befehle ohnehin schon gewesen sein sollte).

 

  1. No trackbacks yet.

Du musst angemeldet sein, um einen Kommentar abzugeben.
%d Bloggern gefällt das: