SQL-Server - Предоставление пользователю разрешения DBO на базу данных

У меня есть база данных отчетов, которую я восстанавливаю каждую ночь из резервной копии производственной базы данных. При восстановлении мне нужно добавить пользователя в роль DBO для этой базы данных.

Я думал, что это сработает:

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

Но я получаю следующую ошибку, поскольку этот пользователь не существует в базе данных Restored_Prod:

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

Как мне добавить пользователя 'chris' в базу данных, чтобы иметь возможность выполнить команду sp_addrolemember, чтобы сделать его DBO этой базы данных? Есть ли способ добавить права пользователю с помощью команды sp_addrolemember из главной базы данных, где пользователь существует?

Решение

Принципы пользователей должны существовать в базе данных, прежде чем вы сможете предоставить им права доступа.

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

Комментарии (2)