解决使用SQL Server发布数据库快照遇到错误:对路径”xxxxx“访问被拒绝的方法

原文地址:https://www.lanhusoft.com/Article/403.html

最近考虑到SQL SERVER数据的重要性,于是做了一个发布、订阅。我用本地数据库订阅线上的数据库,这样实现了数据的热备份,让数据丢失做到最小化。但是启动复制监视器时却出现了一个问题。

错误消息:

Source: mscorlib
Target Site: Void WinIOError(Int32, System.String)
Message: 对路径“D:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\ReplData\unc\IZ23H57WZFJZ_XX_LOG_DEPLOY_XX\20151012142252\”的访问被拒绝。
Stack:    在 System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   在 System.IO.Directory.InternalCreateDirectory(String fullPath, String path, DirectorySecurity dirSecurity)
   在 System.IO.Directory.CreateDirectory(String path, DirectorySecurity directorySecurity)
   在 Microsoft.SqlServer.Replication.Utilities.CreateDirectoryWithExtendedErrorInformation(String directory)
   在 Microsoft.SqlServer.Replication.Snapshot.SnapshotProvider.CreateSnapshotFolders()
   在 Microsoft.SqlServer.Replication.Snapshot.SqlServerSnapshotProvider.GenerateSnapshot()
   在 Microsoft.SqlServer.Replication.SnapshotGenerationAgent.InternalRun()
   在 Microsoft.SqlServer.Replication.AgentCore.Run() (源: mscorlib,错误号: 0)

获取帮助: http://help/0

 

问题原因:

使用SQL Server发布数据库快照的配置中,如果你选择了使用SQL Server代理,而SQL Server代理服务使用的登陆身份不具有对存放快照文件位置的读写权限时,就会出现该错误。

解决办法:

可以修改SQL Server代理服务的登录身份。

在服务中找到SQL Server服务。

 

把服务的运行账户改成本地系统账户。

 

问题就解决了,如下图:

 

posted @ 2019-12-09 16:57  春花秋拾  阅读(369)  评论(0)    收藏  举报