【发布时间】:2020-03-18 16:07:51
【问题描述】:
我创建了一个小脚本来从备份中恢复数据库。脚本运行后会显示
RESTORE DATABASE 在 1.568 秒内成功处理了 28818 个页面 (143.584 MB/秒)。
我有更多代码来更改数据库、更改一些视图和 sp,但我收到以下错误;用户无权更改数据库“GreyGoo”,数据库不存在,或数据库未处于允许访问检查的状态。
我也注意到我在对象资源管理器中看不到数据库
这是我用来从备份中恢复数据库的方法
- 如果 DB 存在设置为单个用户
- 如果数据库存在删除数据库
- 运行以下脚本
RESTORE DATABASE GreyGoo FROM DISK = 'C:\Bkp\GreyGoo_backup_2020_03_02_180002_5403592.bak'
WITH
MOVE 'GreyGoo' TO 'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\GreyGoo.mdf',
MOVE 'GreyGoo_log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\GreyGoo.ldf',
REPLACE;
- 将数据库设置为多用户和其他属性
那么问题是什么,我该如何解决,我目前正在 SQL Server 2008 上测试我的代码
谢谢
【问题讨论】:
-
仅仅因为您已恢复数据库并不意味着您可以访问它。如果您还原了一个数据库,而您使用的
LOGIN没有映射到它的USER,并且它没有sysadmin权限,那么您将无法访问您还原的数据库。这是一个有意的功能。
标签: sql-server database-administration