SQL Server: concedere l'autorizzazione DBO utente al database


12

Ho un database di report che ripristino ogni notte da un backup del database di produzione. Quando eseguo il ripristino, devo aggiungere un utente al DBOruolo per quel database.

Ho pensato che avrebbe funzionato:

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

Ma ottengo il seguente errore, poiché quell'utente non esiste nel database Restored_Prod:

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

Come faccio ad aggiungere l'utente 'chris' al database per poterlo eseguire sp_addrolememberper renderlo uno DBOdi quel database? C'è un modo per aggiungere le autorizzazioni utente usando il sp_addrolemembercomando dal db principale in cui l'utente esiste?

Risposte:


30

Le entità utente devono esistere in un database prima di poter concedere loro le autorizzazioni.

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


1
Ciò ha senso: non sapevo che esistesse una distinzione tra login e utente. Grazie
OrangeGrover il

2
Vedi questa risposta a una domanda diversa in cui spiego la relazione login / utente in modo un po 'più dettagliato.
Mike Fal,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.