SQL-сервер - надання дозволу користувача DBO на базу даних


12

У мене є база даних звітів, яку я щовечора відновлюю з резервної копії виробничої бази. Після відновлення мені потрібно додати користувача до 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команди з головного db, де користувач існує?

Відповіді:


30

Основні користувачі повинні існувати в базі даних, перш ніж ви можете надати їм дозволи.

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
Це має сенс - я не знав, що існує різниця між логіном та користувачем. Спасибі
OrangeGrover

2
Дивіться цю відповідь на інше запитання, де я пояснюю відносини входу / користувача трохи детальніше.
Майк Фаль
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.