SQL-Server - Benutzer DBO-Berechtigung für Datenbank erteilen

12

Ich habe eine Berichtsdatenbank, die ich jede Nacht aus einer Sicherung der Produktionsdatenbank wiederherstelle. Bei der Wiederherstellung muss der DBORolle für diese Datenbank ein Benutzer hinzugefügt werden.

Ich dachte das würde funktionieren:

use Restored_Prod
go
exec sp_addrolemember 'db_owner', 'chris'
go

Ich erhalte jedoch den folgenden Fehler, da dieser Benutzer nicht in der Restored_Prod-Datenbank vorhanden ist:

Msg 15410, Level 11, State 1, Procedure sp_addrolemember, Line 75
User or role 'chris' does not exist in this database.

Wie füge ich den Benutzer 'chris' zur Datenbank hinzu, um das auszuführen sp_addrolememberund ihn zu einer DBOdieser Datenbanken zu machen ? Gibt es eine Möglichkeit, die Benutzerberechtigungen mit dem sp_addrolememberBefehl aus der Master-Datenbank hinzuzufügen, in der der Benutzer vorhanden ist?

OrangeGrover
quelle

Antworten:

30

Benutzer-Principals müssen in einer Datenbank vorhanden sein, bevor Sie ihnen Berechtigungen erteilen können.

use Restored_Prod
GO

CREATE USER [chris] FROM LOGIN [chris];
exec sp_addrolemember 'db_owner', 'chris';
GO

http://technet.microsoft.com/en-us/library/ms173463.aspx

Mike Fal
quelle
1
Das macht Sinn - ich wusste nicht, dass es einen Unterschied zwischen Login und Benutzer gibt. Vielen Dank
OrangeGrover
2
Sehen Sie sich diese Antwort auf eine andere Frage an, in der ich die Beziehung zwischen Login und Benutzer etwas genauer erläutere.
Mike Fal