新闻详情

新闻详情

首页 / 资讯中心 / 详情

SQL Assessment API 自定义 Probe 的权限需求(Permission Requirement)配置指南

发布时间:2026/9/25 2:51:15来源:尧图网络
SQL Assessment API 自定义 Probe 的权限需求(Permission Requirement)配置指南
示例工程数据库教程后端【免费下载链接】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其中权限需求Permission Requirement用于显式声明 probe 运行所需的最低权限避免因权限不足导致评估过程中途失败。本文基于 sql-server-samples 仓库中 PermissionRequirement.md 的规范结合仓库内置 ruleset.json 的真实 probe 定义完整讲解权限需求的名称格式、取值规则、JSON 写法与底层判定机制帮助你在自定义规则集时准确声明权限并理解跳过行为。为什么需要声明权限需求SQL Assessment API 的评估流程由多条规则rule驱动每条规则通过一个或多个 probe 获取数据。默认情况下只要某个 probe 在执行中抛错整个评估流程就会立即终止导致后续所有检查都无法运行最终得到不完整的结果。典型场景下面这个DBMetaInfoprobe 使用DBCC DBINFO读取数据库元数据该命令要求调用者拥有sysadmin角色权限。如果当前登录用户不是sysadminprobe 会直接报错并中断整个评估DBMetaInfo: [ { type: SQL, target: { type: Database }, implementation: { query: DBCC DBINFO(TargetName) WITH TABLERESULTS,NO_INFOMSGS } } ]通过在 probe 的requires属性中显式声明前置条件SQL Assessment API 会在执行查询之前先校验权限不满足时不会执行查询所有依赖该 probe 的检查都会被跳过并仅向用户返回一条警告而不是中断整个评估DBMetaInfo: [ { type: SQL, target: { type: Database }, implementation: { query: DBCC DBINFO(TargetName) WITH TABLERESULTS,NO_INFOMSGS }, requires: { role: [ sysadmin ] } } ]关于该机制的完整说明可参见 Probe requirements 总览 以及 Probe.md 中requires与runFor两个属性的语义定义。权限需求的名称格式权限需求permission requirement的键名遵循如下格式securable_class permission [on securable_name]各部分含义如下组成说明securable_class安全对象securable的类别名称类型为sysname。示例值DATABASE、OBJECT、REMOTE SERVICE BINDING、SERVERpermission需要校验的具体权限名称如SELECT、ALTER TRACEon securable_name可选的限定部分。指定权限针对的具体安全对象名称类型为sysname支持多部分名称multipart name如[msdb].[dbo].[sysalerts]方括号[...]表示on securable_name这一部分是可选的关键约定当安全对象本身是服务器SERVER或数据库DATABASE时securable_name部分应当省略直接写作server permission或database permission形式。支持的取值范围权限需求的允许值取决于securable_class对应的安全对象类别。SQL Server 为不同类别定义了各自的权限集合与层次结构服务器级权限如ALTER TRACE、ADMINISTER BULK OPERATIONS、VIEW SERVER STATE适用于SERVER类数据库级权限如SELECT、VIEW DATABASE STATE、ALTER ANY DATABASE适用于DATABASE类对象级权限如表、视图、存储过程上的SELECT、EXECUTE等适用于OBJECT类此时必须通过on securable_name指明具体对象其他安全对象类别如REMOTE SERVICE BINDING同样遵循对应类别的权限定义。权限校验的底层依据是 SQL Server 系统函数 sys.fn_my_permissions——该函数返回当前主体principal在指定安全对象上实际生效的权限列表SQL Assessment API 正是基于它来判断 probe 的权限需求是否满足。更完整的权限清单与层次关系可参考 SQL Server 官方文档中的SQL Server Permissions与Permissions Hierarchy两篇资料。实战示例原文档与内置规则集的双重印证服务器级权限ALTER TRACErequires的值是一个 JSON 对象属性名即需求名称属性值为字符串数组列出需要校验的权限。下面的声明要求当前用户拥有ALTER TRACE服务器权限requires: { server permission: [ ALTER TRACE ] }这一写法在仓库内置规则集 ruleset.json 中被真实使用CountBlackBoxTraces与CountDefaultTraces两个 probe 都通过sys.traces视图查询服务器跟踪信息而查询该视图需要ALTER TRACE权限因此它们都在requires中声明了相同权限见 ruleset.json 第 18412 行CountBlackBoxTraces: [ { type: SQL, target: { engineEdition: SqlServer, ManagedInstance, version: [11.0,) }, requires: { server permission: [ ALTER TRACE ] }, implementation: { query: SELECT COUNT(id) AS [BlackBoxTraceCount] FROM [sys].[traces] WITH (NOLOCK) WHERE [path] LIKE %blackbox%.trc AND status 1; } } ]对象级权限对 msdb 系统表加 SELECT当 probe 需要读取某个具体对象如表、视图时使用object permission on 对象名形式声明。例如读取msdb数据库中的sysalerts表需要SELECT权限requires: { object permission on [msdb].[dbo].[sysalerts]: [ SELECT ] }内置规则集中的SysAlertsprobe 正是这一写法见 ruleset.json 第 18879 行其查询体直接读取[msdb].[dbo].[sysalerts]因此需求与实现严格对应SysAlerts: [ { type: SQL, target: { engineEdition: SqlServer, ManagedInstance, version: [11.0,) }, requires: { object permission on [msdb].[dbo].[sysalerts]: [ SELECT ] }, implementation: { query: SELECT DISTINCT severity, message_id FROM [msdb].[dbo].[sysalerts] WITH (NOLOCK) } } ]多权限需求同时声明多个对象权限requires对象内可以包含多个权限需求键同一 probe 可同时校验多个对象上的权限。内置规则集中的DeprecatedFeaturesJobsprobe 需要同时读取sysjobs与sysjobsteps两张 msdb 表因此在requires中并列声明了两项object permission见 ruleset.json 第 19078 行requires: { object permission on [msdb].[dbo].[sysjobs]: [ SELECT ], object permission on [msdb].[dbo].[sysjobsteps]: [ SELECT ] }需要说明的是权限需求数组中的多项权限按与的关系判定——即当前用户必须同时满足数组中声明的全部权限probe 才会执行缺少任意一项probe 都会被跳过并触发警告。requires 与 runFor 的区别权限需求只是 probe 需求Probe Requirements体系中的一种。与之并列的还有角色role、功能特性feature与服务service三类需求。所有需求的 JSON 形态一致属性名为需求类型名称属性值为字符串数组。更值得关注的是probe 上有两个承载需求的属性它们在语义上存在关键差异属性判定失败时的行为requiresprobe不执行所有依赖该 probe 的检查被跳过用户会收到一条警告runForprobe 不执行但立即返回空结果集不产生任何警告runFor适用于某场景下 probe 本就不该运行、跳过是正常预期的情况。例如探测数据库镜像端点的 probe 在未启用 HADR高可用与灾难恢复的实例上运行没有意义若用requires声明每次对非 HADR 实例评估都会冒出警告反而造成困扰改用runFor后则静默跳过AGEndpoints: [ { type: SQL, target: { type: Server }, implementation: { query: … }, runFor: { feature: [ HADR ] } } ]内置规则集中AGConfiguration、AGDatabases等 Always On 相关 probe 均采用这一模式见 ruleset.json 第 19946 行保证未配置可用性组的实例在评估时不被无关警告打扰。需求类型速查role / feature / service需求类型名称格式支持的取值说明角色需求roleSQL Server 角色名如sysadmin、bulkadmin、diskadmin校验当前用户所属服务器角色详见 RoleRequirement.md权限需求securable_class permission [on securable_name]取决于安全对象类别本文主题校验当前用户对指定安全对象的权限详见 PermissionRequirement.md功能特性需求featureHADR高可用与灾难恢复 / Always On 可用性组校验实例是否启用某项功能详见 FeatureRequirement.md服务需求serviceMSSQL、SQLAgent、MSOLAP、ReportServer、MsDtsServer、MSSQLFDLauncher、SQLBrowser校验 SQL Server 相关服务是否运行详见 ServiceRequirement.md角色需求的 JSON 写法示例要求用户同时属于bulkadmin与diskadmin角色requires: { role: [ bulkadmin, diskadmin ] }内置规则集中的VLFprobe 即使用role: sysadmin声明需求因为其查询体执行DBCC LOGINFO见 ruleset.json 第 18926 行。在自定义规则集中落地权限需求要把权限需求应用到自己的规则集中只需在自定义 ruleset 的probes部分为对应 probe 添加requires或runFor属性。仓库提供了可直接参考的完整自定义样例 MakingCustomChecks_sample.json其中展示了rules与probes两个顶级节点的完整结构内置 ruleset.json 与可读版本 DefaultRuleset.csv 则收录了数百条生产级规则的真实写法可作为命名与取值的最佳实践参考。在动手编写前建议遵循以下要点需求与查询严格对应probe 查询体访问了哪些安全对象、需要哪些权限就逐一在requires中声明对照SysAlerts与DeprecatedFeaturesJobs的写法服务器/数据库级权限省略对象名server permission、database permission不需要on子句对象级权限必须给出完整对象名建议使用[库].[架构].[对象]形式的多部分名称避免歧义区分 requires 与 runFor权限不足属于异常场景用requires保留警告特性未启用属于正常场景用runFor静默跳过先评估、后发布自定义规则集可先通过 PowerShell SqlServer 模块Install-Module -Name SqlServer -AllowClobber -Force配合 QuickStart.md 中的Get-SqlInstance -ServerInstance localhost | Invoke-SqlAssessment流程做小范围验证观察警告与跳过行为是否符合预期。小结权限需求是 SQL Assessment API 自定义规则集中最常用的前置校验手段之一它以securable_class permission [on securable_name]为名称格式以sys.fn_my_permissions为底层判定依据配合requires失败即跳过 警告与runFor失败即返回空集两种承载属性让规则集在最小权限账户、异构实例环境下依然能完整、安静、可预期地完成评估。结合 ruleset.json 中CountBlackBoxTraces、SysAlerts、DeprecatedFeaturesJobs等 probe 的真实声明你可以在自己的自定义规则集中精确复刻这一模式。赞分享示例工程数据库教程后端【免费下载链接】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 自定义探测指南用 T-SQL Probe 驱动 SQL Server 配置评估SQL Assessment API 自定义探测指南用 T SQL Probe 驱动 SQL Server 配置评估 SQL Assessment API 通示例工程数据库教程后端Langflow 核心概念指南Flow、Project、Playground 与组件一次看懂Langflow 核心概念指南Flow、Project、Playground 与组件一次看懂 Langflow 是一款开源的 AI 工作流可视化构建工具帮助示例工程数据库教程后端SQL Assessment API 实战禁用内置检查规则的自定义规则集配置指南SQL Assessment API 实战禁用内置检查规则的自定义规则集配置指南 SQL Assessment API 是官方开源的 SQL Server 最示例工程数据库教程后端上一篇突破30FPS限制Windows远程桌面60FPS流畅体验的专业优化方案下一篇如何彻底掌控你的数字记忆微信聊天记录永久备份终极指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Umi-OCR 离线OCR完全指南:3步完成截图识别到批量数字化 2026/9/25 3:21:08

Umi-OCR 离线OCR完全指南:3步完成截图识别到批量数字化

Umi-OCR 离线OCR完全指南:3步完成截图识别到批量数字化 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。内置多国语…

阅读更多 →
react/sort-default-props:ESLint 强制 defaultProps 声明按字母序排列的完整指南 2026/9/25 3:21:08

react/sort-default-props:ESLint 强制 defaultProps 声明按字母序排列的完整指南

开发工具代码质量静态分析 【免费下载链接】eslint-plugin-react React-specific linting rules for ESLint 项目地址: https://gitcode.com/gh_mirrors/es/eslint-plugin-react 点击查看 免费下载 react/sort-default-props 是 eslint-plugin-react 提供的一个样式…

阅读更多 →
AI Agent上下文隔离:从Token成本到安全边界的工程实践 2026/9/25 3:20:55

AI Agent上下文隔离:从Token成本到安全边界的工程实践

1. 先从"父子代理"这个架构说起1.1 一个典型的父子代理协作场景做AI Agent工程的同行最近问我最多的架构问题,就是父子代理到底要不要做上下文隔离。我的回答通常是一个反问:假如你的项目经理把整个项目的全部背景资料、前期讨论记录、历史邮件…

阅读更多 →
ng-zorro-antd Cascader 自定义已选项渲染:用 `nzLabelRender` 打造带链接、图标的级联选择结果 2026/9/25 3:20:49

ng-zorro-antd Cascader 自定义已选项渲染:用 `nzLabelRender` 打造带链接、图标的级联选择结果

UI组件前端 【免费下载链接】ng-zorro-antd Angular UI Component Library based on Ant Design 项目地址: https://gitcode.com/gh_mirrors/ng/ng-zorro-antd 点击查看 免费下载 导读 nz-cascader 是 ng-zorro-antd 提供的级联选择组件(见 cascader 组…

阅读更多 →
TypeScript 7 配置诊断自动刷新:tsconfig.json / jsconfig.json 变更后即时重报错误 2026/9/25 3:20:49

TypeScript 7 配置诊断自动刷新:tsconfig.json / jsconfig.json 变更后即时重报错误

文档教程 【免费下载链接】typescript-book The Concise TypeScript Book: A Concise Guide to Effective Development in TypeScript. Free and Open Source. 项目地址: https://gitcode.com/gh_mirrors/typ/typescript-book 点击查看 免费下载 本文基于 typescri…

阅读更多 →
碳资产保险框架如何为交通与能源行业筑牢风险防线 2026/9/25 3:20:36

碳资产保险框架如何为交通与能源行业筑牢风险防线

当初看到“1089 Inc.携手Price Forbes与Oka-Lloyd,通过Syndicate 1922推出面向交通与能源领域的碳资产保险框架”这条消息时,我第一反应不是“又多了个绿色保险”,而是:碳资产这个市场,终于开始像做保险那样做保险了。…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉