我添加了一个新的 Windows 帐户[PROD\apdf]
并赋予它 dbcreator 角色。
- 用户从应用服务器启动恢复。
- 数据库正确还原。在数据库属性下,它将 prod\apdf 用户显示为数据库所有者。但是,该用户没有被授予对数据库的访问权限。sysadmins 和 dbcreators 被添加到新数据库的安全性中,但不是由它恢复的那个。拉起 dbcreator 角色列表时,
[PROD\apdf]
用户在该列表中。
我已确保该帐户不是孤立帐户,并且使用以下命令显示它是 dbcreator 角色的成员:
EXEC sp_helpsrvrolemember 'dbcreator';
我看到一篇文章表明这可能是设计使然,但我想看看其他人是否对此有答案。
恢复数据库后,sysadmin 或 securityadmin 服务器角色的成员需要将数据库的授权(所有权)更改为登录名:
我可以通过下面的MCVE验证还原操作似乎没有正确授予所有权。
创建一个登录名并使其成为 dbcreator 服务器角色的成员:
备份模型数据库,以便稍后恢复:
使用 [backup_restore_test] 用户登录到服务器,然后运行以下命令:
这表明 backup_restore_test 登录是数据库的所有者:
但是,这失败了:
错误:
切换回系统管理员登录,然后运行:
现在,当以 [backup_restore_test] 登录名登录时,这可以正常工作:
除非我忽略了某些东西,否则 backup_restore_test 登录应该在恢复后立即访问数据库,因为它在那时拥有数据库。我已经在 SQL Server 2012 和 SQL Server vNext 上验证了这种行为