SQL维护清理任务不删除DC上安装的任何文件

时间:2017-11-13 09:27:57

标签: sql-server permissions active-directory

此处列出了一般问题SQL Maintenance Cleanup Task Working but Not Deleting,但没有适用的解决方案。环境:Windows Server 2012R2,AD DS(当然有策略),RDSH / TS许可,1C服务器。主要问题是SQL Server在每个备份计划运行时生成大量事件,每个要删除的文件记录一对18456 + 17052错误。错误如下:

  • 17052:[Microsoft] [SQL Server Native Client 11.0] [SQL Server]用户登录失败' DOMAIN \ mssql_srv'
  • 18456:原因:找不到与提供的名称相匹配的登录信息。 [客户端:192.168.x.x](匹配localhost)

鉴于每个要删除的文件出现一对错误(已经有大约6000个文件!),算法如下所示:

  • 首先,备份计划任务运行xp_delete_file,它枚举目标文件夹中的所有文件;
  • 其次,通过创建与具有服务凭据的计算机的单独连接来删除每个文件;
  • 由于默认DC策略适用的任何限制,每个连接都会失败,从而生成一对事件。当然文件仍然存在。

解决方法当然是将文件删除任务分配给作为系统运行的本地脚本,但是,SQL服务器无法删除文件的原因仍然未知。已检查并验证权限,SQL Server代理和SQL Server服务帐户都可以完全控制该文件夹。

1 个答案:

答案 0 :(得分:0)

原来,这个"登录失踪"不是Windows登录,而是SQL" login"这不适用于服务帐户。所以我需要创建一个" DOMAIN \ mssql_srv"登录SSMS,给它"公共"访问权限和文件,文件开始被正确删除。原因在评论中解释:

  

如果它的T-SQL步骤和作业所有者是sysadmin服务器角色的成员,则该步骤在服务帐户下执行。