SQL-Server - conceder permissão de DBO ao usuário no banco de dados

12

Eu tenho um banco de dados de relatórios que restauro todas as noites a partir de um backup do banco de dados de produção. Ao restaurar, preciso adicionar um usuário à DBOfunção desse banco de dados.

Eu pensei que isso iria funcionar:

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

Mas recebo o seguinte erro, pois esse usuário não existe no banco de dados Restored_Prod:

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

Como adiciono o usuário 'chris' ao banco de dados para poder executá sp_addrolemember-lo e torná-lo um DBOdesse banco de dados? Existe uma maneira de adicionar permissões de usuário usando o sp_addrolemembercomando do banco de dados mestre onde o usuário existe?

OrangeGrover
fonte

Respostas:

30

As entidades de usuário devem existir em um banco de dados para que você possa conceder permissões.

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
fonte
1
Isso faz sentido - eu não sabia que havia uma distinção entre login e usuário. Obrigado
OrangeGrover
2
Veja esta resposta para uma pergunta diferente, na qual explico a relação de login / usuário com mais detalhes.
Mike Fal