SQL 数据库转储每晚都会失败

SQL 数据库转储每晚都会失败

大家好,我有 sql05,我的维护计划(将数据库备份到外部存储 SAN)每晚都会失败。
这是我的错误:

执行查询“BACKUP DATABASE [master] TO DISK = N'\\\\192.168.xx\\vmbackup\\server\\dbbackup\\master_backup_201004222300.bak'WITH NOFORMAT,NOINIT,NAME = N'master_backup_20100422230002',SKIP,REWIND,NOUNLOAD,STATS = 10
“失败,错误如下:“无法打开备份设备‘\\\\192.168.xx\\vmbackup\\server\\dbbackup\\master_backup_201004222300.bak’。操作系统错误 5(拒绝访问。)
BACKUP DATABASE 正在异常终止。”。可能的失败原因:查询存在问题、“ResultSet”属性未正确设置、参数未正确设置或连接未正确建立。

我用 Google 搜索了这个错误,并尝试按照专家交流的建议为备份设备添加网络服务权限,但没有成功。

有人有什么想法吗?

答案1

SQL Server 在哪个服务帐户下运行(您可以在 SQL Server 配置管理或 Services.MSC 中检查)?该帐户需要对共享和文件写入到的文件夹具有权限。以下是一些条件:

  • 如果 SQL Server 在网络服务下运行,这将映射到 Domain\Computer$,其中 Domain 是 SQL Server 所在的域,Computer 是安装 SQL Server 的服务器的名称。
  • 如果 SQL Server 在系统(本地系统)下运行,它就无法执行此操作,因为从 Windows Server 2003 开始​​,系统帐户未映射到计算机外部。
  • 如果 SQL Server 在 Computer\User(不是域帐户,而是服务器本地帐户)下运行,那么它面临的问题与在 System 下运行相同。

答案2

您要通过网络进入共享文件夹\\192.168.x.x\vmbackup,因此需要考虑网络身份验证规则:

  • 如果维护作业使用 SQL 身份验证连接到 SQL Server,则 SQL Server 进程将作为服务帐户连接到网络资源,而本地系统服务帐户将通过网络以计算机帐户的身份进行身份验证。因此需要向“domain\machine$”授予权限。需要在共享和单个文件上授予权限。
  • 如果维护作业使用 Windows 身份验证(又称“受信任连接”或“集成安全”)连接到 SQL Server,则 SQL Server 进程将在模拟上下文中访问网络资源。必须向运行维护作业的帐户(例如 SQL 代理帐户)授予对网络资源的权限。需要同时授予对共享和单个文件的权限。此外,如果维护作业由远程连接的客户端(来自与 SQL Server 主机不同的主机)启动,则会发生委派,并且必须为约束委派配置 SQL Server 帐户,请参阅Kerberos 协议转换和约束委派

相关内容