我已经获得了一个特定的域帐户来处理来自我的系统管理员的备份。我有点困惑,因为过去从未向我提供单独的域帐户来处理备份。我仍然想使用代理来处理这个问题,所以我认为他们正在考虑以下内容:
如果您在代理帐户下运行作业,则代理必须是域帐户。将该帐户添加到 sysadmin 服务器角色并授予它对目录和网络共享的完全控制权。
所以我已经完成了我认为上面所描述的事情,我添加了域帐户作为登录名,我创建了一个凭据和代理,并将作业步骤创建为 CmdExec 以在代理下运行,但我仍然得到:
操作系统错误 5(拒绝访问。)。
直到我授予对运行 SQL Server 服务的服务帐户的访问权限,我才能备份到此网络共享。我也担心恢复,我想利用 Agent 来处理清理任务并将文件移动到不同的目录,因为它们变老了。
所以我不确定这里发生了什么,但我认为服务帐户至少需要写访问权限?一位系统管理员说他知道有人将备份过程作为“单独的服务”进行,我不太明白,除非它像 ApexSQL 备份之类的东西......
如果您正在执行本机 SQL Server 备份,则运行 SQL Server 数据库引擎的服务帐户必须有权访问备份位置。代理作业可以在代理下运行以启动作业本身,但引擎仍执行备份,因此仍需要访问权限。
以其他用户身份将备份写入磁盘的唯一方法是使用第三方工具,该工具通过 SQL VDI 接口接收备份数据并以相应用户身份将其写入磁盘。
从文档:
为了在备份文件后管理文件,您可以为此使用 SQL Server 代理代理,以确保您使用正确的帐户访问文件系统。