SQL-Server-データベースのユーザー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.

どのようにして実行できるようにするデータベースにユーザクリス」を追加しない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
ログイン/ユーザーの関係をもう少し詳しく説明する別の質問に対するこの回答をご覧ください。
マイクファル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.