Law*_*age 5 sql-server permissions sql-server-2012 sql-server-agent ola-hallengren
我有一个 SQL Server 2012 Standard 安装,其中引擎和代理在默认 NT 服务帐户下运行
引擎 - NT 服务\MSSQLSERVER
代理 - NT 服务\SQLSERVERAGENT
我试图让 Ola Hallengrens 备份脚本备份到网络共享,但这证明有点问题。通常我会让引擎和代理在域帐户下运行并授予这些访问网络共享的权限,它会正常工作,但是这是在我之前设置的,无法更改这些。
由于代理和引擎不在域帐户下运行,我试图使用代理来使其正常工作。
我有一个共享\\ComputerName\Folder和一个服务帐户Domain\account.svc。我可以使用该Domain\account.svc帐户浏览和创建文件和文件夹,因此访问似乎正常。但是,当通过代理运行它时,它不起作用。
我做了什么。
Domain\account.svc我在日志文件中得到的错误是
消息 50000,级别 16,状态 1,服务器 [服务器名称],过程 DatabaseBackup,第 457 行
目录 \\ComputerName\Folder 不存在。Msg 50000, Level 16, State 1, Server [SERVER NAME], Procedure DatabaseBackup, Line 740 该文档可在https://ola.hallengren.com/sql-server-backup.html 获得。
这与您通常在代理域帐户无权访问共享时遇到的错误相同。
问题 - 有人可以解释为什么这不起作用。
谢谢。
编辑 1:Domain\account.svc 对共享具有完全控制权,是机器上的本地管理员以及 SQL 中的系统管理员。
编辑 2:在我的桌面上安装了 SQL 的测试实例,并且能够复制该问题。当我将引擎和代理服务帐户更改为在 Domain\account.svc 下运行时,备份成功完成到共享。
编辑 3:不是一个理想的解决方案,但现在我正在本地备份并设置了一个 robocopy 作业以将目录镜像到共享。
为此,您需要向已安装 SQL Server 的计算机域帐户授予写入 [ComputerName] 上的共享 [Folder] 的权限。
假设您有一台计算机 SRV-SQLSERVER,并且使用 NT Service* 运行 SQL 服务,但在某些情况下您无法为它们创建域帐户。但您需要将备份存储在其他域服务器\SRV-BACKUP上。
要使其正常工作,请在\\SRV-BACKUP\Folder上创建共享,并为 SQL 框域帐户DOMAIN\SRV-SQLSERVER$授予写入权限。
一些相关信息可以在这里找到: