【发布时间】:2018-04-25 22:24:39
【问题描述】:
一般问题在此处列出SQL Maintenance Cleanup Task Working but Not Deleting,但没有适用的解决方案。环境:Windows Server 2012R2、AD DS(当然还有策略)、RDSH/TS Licensing、1C-server。主要问题是 SQL Server 每次备份计划运行都会产生大量事件,每个要删除的文件记录一对 18456+17052 错误。错误如下:
- 17052:[Microsoft][SQL Server Native Client 11.0][SQL Server]用户 'DOMAIN\mssql_srv' 登录失败
- 18456:原因:找不到与提供的名称匹配的登录名。 [客户:192.168.x.x](匹配本地主机)
鉴于每个要删除的文件都会出现每对错误(已经有大约 6000 个文件!),算法如下所示:
- 首先,备份计划任务运行
xp_delete_file,它会枚举目标文件夹中的所有文件; - 其次,通过使用服务凭据创建与机器的单独连接来删除每个文件;
- 由于默认 DC 策略应用的任何限制,每个连接都会失败,从而生成事件对。当然,该文件仍然存在。
例如,解决方法当然是将文件删除任务分配给作为系统运行的本地脚本,但 SQL Server 无法删除文件的真正原因仍然未知。已检查权限并验证 SQL Server 代理和 SQL Server 服务帐户都可以完全控制该文件夹。
【问题讨论】:
-
提供的链接有不同的问题。相反,您的登录名错误
-
转到 SQL Server 错误日志,找到 18456 错误,您会看到登录名错误
-
@sepupic "Wrong login name" - 备份计划和它的工作从 "mssql_agent" 帐户开始,那么 "mssql_srv" 怎么会出现呢?
-
所以您检查了错误日志,发现“用户 mssql_agent 登录失败”?
-
如果是 T-SQL 步骤且作业所有者是 sysadmin 服务器角色的成员,则该步骤在服务帐户下执行
标签: sql-server permissions active-directory