SQL-Server - 授予用户对数据库的 DBO 权限

Ora*_*ver 13 permissions sql-server-2008-r2

我有一个报告数据库,我每天晚上都从生产数据库的备份中恢复它。当我恢复时,我需要将一个用户添加到该DBO数据库的角色中。

我认为这会奏效:

use Restored_Prod
go
exec sp_addrolemember 'db_owner', 'chris'
go
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误,因为该用户在 Restored_Prod 数据库中不存在:

Msg 15410, Level 11, State 1, Procedure sp_addrolemember, Line 75
User or role 'chris' does not exist in this database.
Run Code Online (Sandbox Code Playgroud)

我如何将用户 'chris' 添加到数据库中以便能够运行sp_addrolemember使他成为DBO该数据库的成员?有没有办法使用sp_addrolemember来自用户所在主数据库的命令添加用户权限?

Mik*_*Fal 33

用户主体必须存在于数据库中,然后才能授予他们权限。

use Restored_Prod
GO

CREATE USER [chris] FROM LOGIN [chris];
exec sp_addrolemember 'db_owner', 'chris';
GO
Run Code Online (Sandbox Code Playgroud)

http://technet.microsoft.com/en-us/library/ms173463.aspx

  • 请参阅 [this answer](http://dba.stackexchange.com/a/40845/7611) 到另一个问题,我更详细地解释了登录/用户关系。 (2认同)