-
SQL Server作业报“Unable to determine if the owner (xxx\xxx) of job xxx has server access”
案例描述:
今天遇到一个很有意思的SQL Server作业报错告警,作业出错的详细信息如下:
案例分析:
关于错误代码0x251E, 这个代表Bad DNS packet.(DNS_ERROR_BAD_PACKET)
其实这个案例是这样的:因为一个DC服务器宕机了,SQL Server作业(Job)的Owner是一个域账号(NT账号),在作业运行时会验证权限,由于DC服务器挂了,无法访问DC获取相关信息、验证权限时报错。如果这里的作业Owner为sa的话,就不会遇到这个错误。所以我一直推荐将作业的Owner设置sa,避免这样的麻烦。那么这台SQL Server数据库成了一个特例,因为我一直用域账号(NT账号)管理数据库,sa账号默认是禁用的。所以有时候创建作业的时候不可避免忘记了修改作业的Owner。
其实不光DC服务器宕机,当域账号被锁时也会有这样的错误。之前我在博客“Could not obtain information about Windows NT group/user 'xxxx\xxxx', error code 0x5”里面就介绍过这样的案例,如果作业的Owner是一个域账号的话,如果域账号被锁的话,那么作业也会报错。域账号被锁时,对应的错误代码为0x5,表示访问拒绝(ERROR_ACCESS_DENIED)。
解决方法比较简单,修改作业的owner为sa即可。可以使用下面脚本批量生成操作脚本。当然问题的根源还是域服务器DC宕机了。
今天遇到一个很有意思的SQL Server作业报错告警,作业出错的详细信息如下:
Date 2021/6/23 12:34:00
Log Job History (YourSQLDba_BlockingSQL_Alert)
Step ID
Server xxxxx
Job Name YourSQLDba_BlockingSQL_Alert
Step Name
Duration 00:00:06
Sql Severity 0
Sql Message ID 0
Operator Emailed
Operator Net sent
Operator Paged
Retries Attempted 0
Message
The job failed. Unable to determine if the owner (xxx\xx) of job YourSQLDba_BlockingSQL_Alert has server access (reason: Could not obtain information about Windows NT group/user 'xxx\xxxx', error code 0x251e. [SQLSTATE 42000] (Error 15404)).
案例分析:
关于错误代码0x251E, 这个代表Bad DNS packet.(DNS_ERROR_BAD_PACKET)
其实这个案例是这样的:因为一个DC服务器宕机了,SQL Server作业(Job)的Owner是一个域账号(NT账号),在作业运行时会验证权限,由于DC服务器挂了,无法访问DC获取相关信息、验证权限时报错。如果这里的作业Owner为sa的话,就不会遇到这个错误。所以我一直推荐将作业的Owner设置sa,避免这样的麻烦。那么这台SQL Server数据库成了一个特例,因为我一直用域账号(NT账号)管理数据库,sa账号默认是禁用的。所以有时候创建作业的时候不可避免忘记了修改作业的Owner。
其实不光DC服务器宕机,当域账号被锁时也会有这样的错误。之前我在博客“Could not obtain information about Windows NT group/user 'xxxx\xxxx', error code 0x5”里面就介绍过这样的案例,如果作业的Owner是一个域账号的话,如果域账号被锁的话,那么作业也会报错。域账号被锁时,对应的错误代码为0x5,表示访问拒绝(ERROR_ACCESS_DENIED)。
解决方法比较简单,修改作业的owner为sa即可。可以使用下面脚本批量生成操作脚本。当然问题的根源还是域服务器DC宕机了。
--==================================================================================================================
-- ScriptName : change_jobs_owner.sql
-- Author : 潇湘隐者
-- CreateDate : 2015-12-18
-- Description : 将数据库作业的OWNER改为sa或某个账号
-- Note : Azure SQL不支持.
/******************************************************************************************************************
Parameters : 参数说明
********************************************************************************************************************
@login_name : 作业的Owner,例如sa
********************************************************************************************************************
Modified Date Modified User Version Modified Reason
********************************************************************************************************************
2015-12-18 Kerry V01.00.00 新建该脚本。
*******************************************************************************************************************/
--==================================================================================================================
DECLARE @login_name NVARCHAR(32);
SET @login_name='sa';
SELECT 'EXEC msdb.dbo.sp_update_job @job_name=N''' +j.name + ''', @owner_login_name=N''' + RTRIM(LTRIM(@login_name)) + ''';' AS CommadText
FROM msdb.dbo.sysjobs j
INNER JOIN msdb.dbo.syscategories c ON j.category_id = c.category_id
INNER JOIN sys.syslogins l ON l.sid = j.owner_sid
WHERE l.name !='sa'
ORDER BY j.name; 出处:https://www.cnblogs.com/kerrycode/p/14923410.html
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式