SQL Assessment API 服务要求(Service Requirement):为探针声明 SQL Server 服务依赖的完整指南
示例工程数据库教程后端【免费下载链接】sql-server-samplesAzure Data SQL Samples - Official Microsoft GitHub Repository containing code samples for SQL Server, Azure SQL, Azure Synapse, and Azure SQL Edge项目地址https://gitcode.com/gh_mirrors/sq/sql-server-samples点击查看免费下载SQL Assessment API 允许通过规则集ruleset中的探针probe收集评估数据而service要求Service Requirement用于声明探针运行所依赖的 SQL Server 服务从而在服务缺失或未运行时自动跳过探针避免评估流程中断。本文以仓库 ServiceRequirement.md 为核心结合 ProbeRequirements 目录、自动变量文档与默认规则集源码系统讲解服务要求的名称格式、全部受支持的服务值、JSON 配置写法以及它如何与attr::service::*自动变量联动帮助读者在自定义探针与规则时正确、精准地控制评估行为。一、探针要求Probe Requirements机制概览在 SQL Assessment API 中探针负责从目标服务器或数据库收集数据检查check则通过条件表达式分析这些数据。默认情况下探针的任何执行错误都会立即终止整个评估流程这会导致后续检查无法运行、结果不完整。例如一个执行DBCC DBINFO(TargetName) WITH TABLERESULTS,NO_INFOMSGS的探针如果当前用户没有sysadmin角色就会报错并中断评估见 ProbeRequirements/README.md。探针要求机制正是为应对这类场景而设计在探针实现中显式声明其依赖条件如角色、权限、功能特性、服务SQL Assessment API 会在运行探针前检查这些条件是否满足。若不满足则跳过该探针及其依赖的所有检查避免评估中断。根据 Probe.md 的定义探针实现probe implementation上有两个承载要求的属性属性语义条件不满足时的行为requires显式的功能性要求探针不执行所有依赖该探针的检查被跳过并返回一条警告runFor显式的逻辑性要求探针实现不执行立即返回空结果集不产生警告二者的要求格式完全相同区别仅在于是否产生警告。例如当某个探针只对启用了 Always On 可用性组HADR 功能的实例有意义时用requires会让每个未参与 HADR 的实例都产生一条令人困惑的警告改用runFor后探针会静默跳过并返回空结果集见 ProbeRequirements/README.md。每个要求由 JSON 对象的一个属性表示属性名即要求名称属性值是字符串数组列出允许的值。例如requires: { server permission: [ ALTER TABLE, ADMINISTER BULK OPERATIONS ] }SQL Assessment API 支持四类要求role角色、permission权限、feature功能特性和service服务详见 ProbeRequirements/README.md。本文聚焦service类型。二、service 要求的名称格式与 JSON 语法根据 ServiceRequirement.mdservice要求的名称格式为service即固定的字面量service无变量部分、无可选部分。其用法是作为requires或runFor属性下的一个键值为服务名组成的数组runFor: { service: [ ReportServer ] }该示例出自 ServiceRequirement.md表示仅当目标实例上存在且运行SQL Server Reporting Services 服务时才执行该探针否则探针立即返回空结果集。与role、feature等要求一样service要求可以出现在探针实现的requires产生警告或runFor静默跳过属性中也可以在同一探针中与其他要求组合使用。要求之间是全部满足AND的关系——SQL Assessment API 会检查所有要求是否被满足任一不满足即触发跳过逻辑。三、受支持的服务值Supported Valuesservice要求的取值对应 SQL Server 在 Windows 上注册的各类 Windows 服务。文档明确列出的受支持值如下见 ServiceRequirement.md服务键对应服务说明MSSQLSQL Server 数据库引擎服务SQL Server 实例的核心数据库服务SQLAgentSQL Server Agent 服务负责执行作业、监视 SQL Server、触发警报、实现管理任务自动化MSOLAPSQL Server Analysis Services提供联机分析处理OLAP与数据挖掘功能ReportServerSQL Server Reporting Services负责报表的管理、执行、创建、计划与交付MsDtsServerSQL Server Integration Services为 Integration Services 包存储与执行提供管理支持MSSQLFDLauncher全文筛选器守护进程启动器服务为全文索引提供文档筛选与断字支持SQLBrowserSQL Server Browser 服务名称解析服务向客户端提供 SQL Server 连接信息这些服务键在默认规则集中被大量引用。例如 DefaultRuleset.csv 中的BrowserSvcStoped、DtsSvcStoped、FullTextSvcStoped、OlapSvcStoped、RsSvcStoped、SqlSvcAccNotRecommended等规则均围绕这些服务键对应的状态与运行账户展开评估。以AgentSvcStoped规则为例其目标平台限定为 WindowsServer,Windows消息为SQL Server Agent service is stopped这正体现了service要求在默认规则集中的典型应用场景。注意服务值面向Windows 平台上的 SQL Server。Linux 上的 SQL Server 没有同名 Windows 服务因此涉及服务状态的规则通常通过目标过滤器限定在 Windows 平台见 DefaultRuleset.csv 中Platform列自定义规则时也应遵循这一平台约束。四、实战示例按服务状态控制探针执行4.1 在 runFor 中按服务过滤静默跳过最常见的用法是让探针仅在目标服务存在时运行。以 Reporting Services 为例RsEndpoints: [ { type: SQL, target: { type: Server }, implementation: { query: … }, runFor: { service: [ ReportServer ] } } ]当目标实例未安装或未运行 Reporting Services 时探针不会执行查询而是直接返回空结果集且不产生任何警告评估流程平稳继续。4.2 在 requires 中声明硬性依赖带警告如果某个探针的数据是某些检查的硬性前提缺失时希望用户明确知晓则应使用requiresrequires: { service: [ SQLAgent, MSSQL ] }当任一服务不满足时探针被跳过、依赖它的检查被跳过同时返回一条警告提示用户评估结果的完整度受到影响。4.3 与其他要求组合service可与role、permission、feature组合使用。例如同时要求 HADR 功能与 SQL Server 引擎服务runFor: { feature: [ HADR ], service: [ MSSQL ] }功能要求feature的受支持值与写法可参考 FeatureRequirement.md角色与权限要求的完整语法可参考 RoleRequirement.md 与 PermissionRequirement.md。五、与 attr::service::* 自动变量的联动service要求不仅是执行开关还向规则引擎注入了一组与目标服务相关的自动变量。根据 AttrService.md在探针声明了服务要求后attr::service::*命名空间下会提供以下变量key为上表中的服务键变量名类型描述attr::service::_key_bool该服务是否存在attr::service::_key_.namestring服务的实际名称attr::service::_key_.accountstring该服务使用的用户账户名这些变量可用于检查的condition表达式与message消息模板中实现基于服务状态的动态判定。默认规则集中有大量此类用例。例如 DefaultRuleset.csv 中SqlSvcAccNotSupported规则的消息为SQL Server Database Engine service uses not supported account Current account {attr::service::MSSQL.account} is not supported其逻辑是若 SQL Server 引擎服务以NT AUTHORITY\LOCALSERVICE、NT AUTHORITY\SYSTEM或NT AUTHORITY\NETWORKSERVICE账户运行则触发建议。同样AgentSvcAccNotRecommended、FullTextSvcAccSame、DtsSvcAccSame、OlapSvcAccSame、RsSvcAccSame等规则分别对SQLAgent、MSSQLFDLauncher、MsDtsServer、MSOLAP、ReportServer的运行账户进行检查。AttrService.md 给出了一个完整的自定义规则示例当 SQL Server Agent 服务存在且运行在本地服务账户下时报告不支持该账户{ message: Account {attr::service::SQLAgent.account} is not supported for SQL Server Agent service., localServiceAccount: NT AUTHORITY\\LOCALSERVICE, condition: [ { not: attr::service::SQLAgent }, { ine: [ attr::service::SQLAgent.account, localServiceAccount ]} ], probes: [ IsClusteredServer ] }其中{ not: attr::service::SQLAgent }利用布尔型自动变量判断服务存在性ine运算符比较当前账户与本地服务账户。该文档还提供了针对群集服务器的扩展版本将NT AUTHORITY\SYSTEM、LOCALSYSTEM、NT AUTHORITY\NETWORKSERVICE一并列为不支持账户。由此可见service要求与attr::service::*变量共同构成了一套完整的服务感知规则编写基础设施。六、与其他要求类型的对比与选择要求类型名称格式用途典型示例serviceservice探针依赖的 SQL Server Windows 服务service: [ ReportServer ]featurefeature探针依赖的 SQL Server 功能特性feature: [ HADR ]rolerole当前用户所需的服务器角色role: [ bulkadmin, diskadmin ]permissionsecurable_classpermission[onsecurable_name]当前用户所需的特定权限server permission: [ ALTER TRACE ]选择建议结合 ProbeRequirements/README.md 的机制说明服务未安装/未运行时应跳过探针且不希望打扰用户 → 用service要求放在runFor中权限不足或角色缺失会导致探针查询失败 → 用role/permission要求放在requires中让用户看到警告功能特性未启用如 HADR时探针无意义 → 用feature要求放在runFor中静默跳过需要把服务信息写入检查消息或条件表达式 → 声明service要求后即可使用attr::service::*自动变量。七、更多参考探针要求的完整机制requires与runFor的区别、各要求类型的总览ProbeRequirements/README.mdattr::service::*自动变量定义与完整示例AutomaticVariables/AttrService.md探针实现的属性总览implementation、requires、runFor、target、typeProbe.md规则与探针的关系、检查清单构建流程RulesandProbes.md默认规则集中service要求的实际生产用例AgentSvcStoped、BrowserSvcStoped、RsSvcStoped等规则DefaultRuleset.csv赞分享示例工程数据库教程后端【免费下载链接】sql-server-samplesAzure Data SQL Samples - Official Microsoft GitHub Repository containing code samples for SQL Server, Azure SQL, Azure Synapse, and Azure SQL Edge项目地址https://gitcode.com/gh_mirrors/sq/sql-server-samples点击查看免费下载相关推荐SQL Assessment API 探针特性要求Feature Requirement实战指南以 HADR 为例理解 requires 与 runForSQL Assessment API 探针特性要求Feature Requirement实战指南以 HADR 为例理解 requires 与 runFor示例工程数据库教程后端深入解析 SQL Assessment API 的 AzMetadata 探针通过 IMDS 元数据评估 Azure VM 上的 SQL Server深入解析 SQL Assessment API 的 AzMetadata 探针通过 IMDS 元数据评估 Azure VM 上的 SQL Server SQL示例工程数据库教程后端SQL Assessment API 自定义规则实战深入理解与使用 attr::service:: 服务自动变量SQL Assessment API 自定义规则实战深入理解与使用 attr::service:: 服务自动变量 导读 本文围绕 SQL Assessment示例工程数据库教程后端上一篇nlux社区贡献指南如何参与开源项目并提交PR下一篇深入理解Iterative Puzzle压缩框架NVIDIA-Nemotron-Labs-3-Puzzle-75B-A9B-BF16背后的黑科技创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Hunk 0.14 发布详解:鼠标拖拽选择复制、折叠上下文内联展开与 Catppuccin 主题

Hunk 0.14 发布详解:鼠标拖拽选择复制、折叠上下文内联展开与 Catppuccin 主题

开发工具代码评审CLIAI 应用 【免费下载链接】hunk Review-first terminal diff viewer for agentic coders 项目地址: https://gitcode.com/gh_mirrors/hu/hunk 点击查看 免费下载 Hunk 0.14 是面向 agentic 编码者的 review-first 终端 diff 查看器在 2026 年 5 …

2026/9/25 2:39:15 阅读更多 →
React 360 CLI 使用与生成器机制完全指南:用 `react-360 init` 一键创建 360° 项目

React 360 CLI 使用与生成器机制完全指南:用 `react-360 init` 一键创建 360° 项目

前端3D渲染 【免费下载链接】react-360 Create amazing 360 and VR content using React 项目地址: https://gitcode.com/gh_mirrors/re/react-360 点击查看 免费下载 本指南围绕 React 360 官方脚手架工具 react-360-cli 展开,讲解其安装方式、init 命…

2026/9/25 2:39:15 阅读更多 →
Humanizer 相对时间人性化:DefaultDateTimeHumanizeStrategy 默认策略源码级解析

Humanizer 相对时间人性化:DefaultDateTimeHumanizeStrategy 默认策略源码级解析

开发工具 【免费下载链接】Humanizer Humanizer meets all your .NET needs for manipulating and displaying strings, enums, dates, times, timespans, numbers and quantities 项目地址: https://gitcode.com/gh_mirrors/hu/Humanizer 点击查看 免费下载 Human…

2026/9/25 2:39:15 阅读更多 →

最新新闻

从Prompt到SKILL.md:构建高可用AI技能包的实战指南

从Prompt到SKILL.md:构建高可用AI技能包的实战指南

这段时间我翻了不少 Skills 项目,说句得罪人的话:社区里八成以上的“Skills”,本质就是一段 Prompt 换个后缀,连及格线都没到。自从 Claude Code、Cursor、Codex 这些工具陆续把 Skills 变成“一等公民”,好像一夜之间…

2026/9/25 3:19:43 阅读更多 →
最新论文搜索与追踪:从检索式到引文网络的完整方法论

最新论文搜索与追踪:从检索式到引文网络的完整方法论

每次组会汇报文献进展,导师问“最近领域内有没有什么值得关注的新工作”,你是不是只能说出几篇组会前临时在群里转发的文章?又或者,你刚把检索式里的关键词调整了一圈,点下搜索,翻了几页全是自己已经看过的…

2026/9/25 3:19:43 阅读更多 →
【无人机动态避障】基于龙格库塔优化算法RUN融合动态窗口法DWA的无人机三维动态避障方法研究MATLAB代码

【无人机动态避障】基于龙格库塔优化算法RUN融合动态窗口法DWA的无人机三维动态避障方法研究MATLAB代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、算法改进、程序设计科研仿真。🍎 往期回顾关注个人主页:完整代码获取 定制创新 论文复现私信🍊个人信条:做科研&#xff0c…

2026/9/25 3:19:43 阅读更多 →
BabelDOC 完整教程:5分钟跑通英文论文 PDF 双语翻译

BabelDOC 完整教程:5分钟跑通英文论文 PDF 双语翻译

BabelDOC 完整教程:5分钟跑通英文论文 PDF 双语翻译 【免费下载链接】BabelDOC Yet Another Document Translator 项目地址: https://gitcode.com/GitHub_Trending/ba/BabelDOC BabelDOC 是一款开源的 PDF 翻译库,把英文论文译成中文时保留排版、…

2026/9/25 3:19:43 阅读更多 →
ctf-wiki 花指令(Junk Code)去除实战:原理、编写手法与 N1CTF2020 oflo 完整分析流程

ctf-wiki 花指令(Junk Code)去除实战:原理、编写手法与 N1CTF2020 oflo 完整分析流程

文档网络安全教程 【免费下载链接】ctf-wiki Come and join us, we need you! 项目地址: https://gitcode.com/gh_mirrors/ct/ctf-wiki 点击查看 免费下载 花指令(junk code)是静态逆向中常见的一类"反汇编器陷阱":程序…

2026/9/25 3:19:43 阅读更多 →
MySQL表空间传输实战:超大单表分钟级迁移原理与踩坑指南

MySQL表空间传输实战:超大单表分钟级迁移原理与踩坑指南

表空间传输这个功能,说实话在很多DBA的日常工具箱里属于"知道但不常用"的那一类。直到有一天我接到一个需求:线上有一张将近200GB的流水表,要从一个MySQL实例迁到另一个新实例,业务方给的窗口只有30分钟。mysqldump导数…

2026/9/25 3:18:43 阅读更多 →

日新闻

AI元人文:从工具使用到思维重构的深度探索

AI元人文:从工具使用到思维重构的深度探索

最近半年我一直在琢磨一件事:AI元人文到底是什么?说白了,就是“用元视角重新审视人与AI的关系”,也在“探索AI如何反向逼着我们发现自己的思考边界”。标题里的“元探索”,在我看就是一层套一层的追问——当你用AI解决…

2026/9/25 0:00:41 阅读更多 →
Python+CNN车牌识别实战:从数据预处理到模型训练与部署

Python+CNN车牌识别实战:从数据预处理到模型训练与部署

简介:基于Python与卷积神经网络的车牌识别项目,面向计算机视觉初学者及智能交通开发者,目标是帮助用户掌握从数据预处理、模型构建到实际部署的完整流程。压缩包共25个文件,包含jpg/png图像样本、py训练脚本、md说明文档、dat数据…

2026/9/25 0:00:41 阅读更多 →
Vim基础操作全攻略:保存退出、模式切换与高频命令实战

Vim基础操作全攻略:保存退出、模式切换与高频命令实战

1. 项目概述1.1 核心需求解析今天聊聊Vim。写这个题目的原因是:几乎每个后端开发者、运维人员、数据工程师某天都会遇到一个场景——深夜加班,服务器登录界面只有黑底白字,编辑器只有vi/vim,你必须在五分钟内完成一次配置修改并保…

2026/9/25 0:00:41 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/24 14:34:13 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/24 9:10:42 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/24 14:33:56 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/24 12:50:34 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/24 14:33:48 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/24 12:49:17 阅读更多 →