首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >分离数据库后,为什么无法从备份中恢复数据库?

分离数据库后,为什么无法从备份中恢复数据库?
EN

Stack Overflow用户
提问于 2020-06-27 06:18:07
回答 1查看 26关注 0票数 0

我遇到了一个奇怪的情况。我有一个名为xyz的数据库。我分离了数据库。因此,数据和日志文件仍然在相应的文件夹中。当我尝试通过SQLAgent作业从备份恢复数据库时,无法恢复。我还在TSQL中使用了Move和Replace选项。但是如果我通过Query Analyzer进行恢复,同样的TSQL也可以正常工作。

如果数据库在那里(未分离),则作业正在成功覆盖...为什么会这样呢?我将SQLService和SQL Agent帐户都作为本地管理员添加到机器上,以覆盖数据和日志文件。

当作业fails...Restore数据库:错误:操作系统返回错误‘5(访问被拒绝。)’时,我收到此错误。在对'E:\Microsoft Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\XXXXXX.mdf'.‘尝试'RestoreContainer::ValidateTargetForCreation’时

任何想法。提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2020-06-27 06:36:17

i将SQLService和SQL Agent帐户作为本地管理员添加到计算机,以覆盖数据和日志文件。

这不会隐式地允许两个服务用户访问数据文件夹。(例如,管理员没有直接访问用户主文件夹的权限)您是否检查了数据文件夹和/或.mdf和.ldf文件的显式权限?

我猜测如下:(我没有找到任何文档...)

附加数据库后,SQL代理可以使用数据库引擎中的Windows安全上下文,该引擎能够访问数据文件夹和所有文件。当它被分离时,当代理尝试还原数据库时,它需要使用自己的安全上下文访问数据文件夹,而不具有适当的NTFS权限。

我将检查代理使用的用户的DATA文件夹和.mdf / .ldf文件的权限。例如:"NT服务\SQLSERVERAGENT“

这就解释了为什么sql脚本在手动执行时(在数据库引擎的安全上下文中)可以正常工作。一种Schroedingers SQL作业...

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62603556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档