SQL-Server - Przyznaj użytkownikowi uprawnienia DBO do bazy danych

12

Mam bazę danych raportów, którą przywracam co noc z kopii zapasowej produkcyjnej bazy danych. Podczas przywracania muszę dodać użytkownika do DBOroli dla tej bazy danych.

Myślałem, że to zadziała:

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

Ale pojawia się następujący błąd, ponieważ ten użytkownik nie istnieje w bazie danych Restored_Prod:

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

Jak dodać użytkownika „chris” do bazy danych, aby móc go uruchomić sp_addrolememberi uczynić go jednym DBOz tej bazy danych? Czy istnieje sposób na dodanie uprawnień użytkownika za pomocą sp_addrolememberpolecenia z głównej bazy danych, w której użytkownik istnieje?

OrangeGrover
źródło

Odpowiedzi:

30

Użytkownicy muszą istnieć w bazie danych, zanim będzie można przyznać im uprawnienia.

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
źródło
1
To ma sens - nie wiedziałem, że istnieje różnica między loginem a użytkownikiem. Dzięki
OrangeGrover
2
Zobacz tę odpowiedź na inne pytanie, w którym wyjaśnię relację logowania / użytkownika bardziej szczegółowo.
Mike Fal