Detecting Threats on the Microsoft Sentinel Platform for SC-200: Hunting Queries, Bookmarks, Hunts, KQL Jobs, Summary Rules, Notebooks and the MCP Server
Detecting threats on the Microsoft Sentinel platform means hunting across Sentinel's analytics tier and its data lake: running and monitoring hunting queries, preserving evidence in bookmarks and hunts, promoting lake data with KQL jobs, condensing verbose logs with summary rules, and analyzing data in notebooks or through AI agents connected to the Sentinel MCP server. For SC-200 the skill is choosing the right tool and setting for a requirement: which Hunting page column answers the question, how a built-in query can be changed, whether a summary rule or a KQL job can reach the data's time range and scope, which table suffix and tier the output lands in, which limit or permission explains a failure, and which MCP collection and role an agent needs. Writing analytics rules and Defender XDR advanced hunting are covered in their own lessons.
On this page10 sections
- How do you run and monitor hunting queries in Microsoft Sentinel?
- How do you create and customize hunting queries?
- How do hunting bookmarks preserve evidence?
- How do hunts organize a hypothesis-driven investigation?
- What replaces livestream, and how do you follow up on a hunting query?
- What are KQL jobs in the Microsoft Sentinel data lake?
- How do you schedule KQL jobs, and what limits apply?
- What are summary rules, and how do you design and operate them?
- Summary rule or KQL job: which should you use?
- How do you hunt with data lake notebooks and the Sentinel MCP server?
- Run hunting queries and interpret Results, N/A, Results delta, delta percentage, favorites and the MITRE tactic bar
- Create custom hunting queries with entity and MITRE mappings, and change Content hub or repository queries correctly
- Preserve and escalate evidence with bookmarks and organize hypothesis-driven work in hunts
- Replace livestream by choosing between KQL jobs, analytics rules and playbooks for follow-up
- Create, schedule and troubleshoot KQL jobs that promote data-lake data, within their limits and permissions
- Design, cost and operate summary rules, and choose between a summary rule and a KQL job
- Hunt with data lake notebooks and notebook jobs, and connect AI agents to the Sentinel MCP server
How do you run and monitor hunting queries in Microsoft Sentinel?
You run and monitor hunting queries on the Microsoft Sentinel Hunting page (in the Defender portal: Microsoft Sentinel > Threat management > Hunting), where you select Run all queries or run a selection and then read each query's result counts and how they changed. The Queries tab lists the hunting queries installed with Content hub solutions alongside your own custom queries, written in KQL and run mainly against the workspace's analytics-tier tables.
The columns after a run.
| Column / value | What it tells you |
|---|---|
| Results | How many rows the query returned in its time range |
| 0 | A real run that found no matches |
| N/A | The query isn't active in your environment: the data source it reads isn't connected, so there is nothing to run against. Filter Results on N/A and hover over the info icon to see which data sources would make it active |
| Results delta | The absolute change in result count between the last 24 hours and the previous 24 to 48 hours |
| Results delta percentage | The same change relative to the earlier count, so a small query that suddenly multiplies stands out even though its absolute change is tiny |
The delta windows are fixed: they always compare the last 24 hours with the 24 to 48 hours before, not this run with your previous manual run and not week on week. Sort by Results delta to find the biggest absolute jumps, and by Results delta percentage to find the queries that rose the most relative to their own normal volume; noisy queries dominate the absolute delta and the raw Results column.
Favorites run themselves. Queries you mark as favorites run automatically each time you open the Hunting page, so their counts are current on arrival without selecting and running them by hand.
The MITRE ATT&CK tactic bar at the top of the Queries tab counts queries per tactic using each query's MITRE mapping. It updates dynamically with the current filters: hide N/A and zero-result queries and the bar shows which tactics your active queries cover, which makes it a quick coverage check rather than a static inventory.
How do you create and customize hunting queries?
You create a custom hunting query with New query on the Hunting page's Queries tab, giving it KQL, a description, entity mappings and MITRE ATT&CK tactics and techniques; you change a built-in query by cloning it, because only queries whose content source is custom can be edited in place.
What to fill in on a new query.
- Query — the KQL, against the workspace's analytics-tier tables.
- Entity mappings — entity type (Account, Host, IP and so on), identifier and the result column that holds it. Bookmarks created from the query's results inherit these mappings, so no one has to map entities bookmark by bookmark.
- MITRE ATT&CK — tactic, technique and sub-technique. These drive the tactic bar's coverage counts, and bookmarks inherit them too.
Once saved, the query sits beside the Content hub queries: it is included in Run all queries and gets Results, Results delta and Results delta percentage values. Only a query saved on the Hunting page's Queries tab takes part in these runs and metrics; KQL kept anywhere else is just stored text.
Editing depends on where the query came from.
| Content source | How to change it |
|---|---|
| Custom (created on the Hunting page) | Edit it directly |
| Content hub solution | Clone it from the row's ellipsis menu; the clone copies the KQL, entity mappings and techniques into a new custom query you can edit and save, leaving the original untouched |
| Repository (Repositories connection to GitHub or Azure DevOps) | Edit the file in the source repository and commit it; a clone on the Hunting page would work technically but leave the source-controlled copy stale |
The content source alone decides whether a query is editable in place; no other setting on the query changes that.
How do hunting bookmarks preserve evidence?
A hunting bookmark saves specific result rows together with the query that produced them, so a finding survives after the query window moves on and can be investigated, grouped and escalated to an incident. You select rows in a query's results on the Sentinel Hunting page and choose Add bookmark.
Where bookmarks work. Bookmarks belong to the Microsoft Sentinel hunting experience. The unified advanced hunting page in the Defender portal does not support them, so to preserve rows as bookmarks a hunter runs the query on the Sentinel Hunting page.
What a bookmark carries.
- The row results, the query and its time range.
- Entity and MITRE mappings, defaulted from the query's own mappings (you can adjust them).
- Tags and notes. Tag every bookmark from one campaign with the same tag and filter the Bookmarks tab on it; new bookmarks join the view as soon as they are tagged.
Bookmarks as data. Every bookmark is written to the HuntingBookmark table in the workspace, so you can filter, summarize and join everything the team has preserved with other sources such as SigninLogs to look for corroborating evidence.
Acting on a bookmark.
- Investigate (in the bookmark's details pane) opens the investigation graph and timeline, connecting that single finding to the users, hosts and IP addresses involved.
- Incident actions on the Bookmarks tab offer Create new incident or Add to existing incident for the selected bookmarks.
Bookmarks are evidence, not triggers: they do not rerun a query or alert on future matches.
How do hunts organize a hypothesis-driven investigation?
A hunt (preview) is a single Microsoft Sentinel object, created on the Hunting page's Hunts tab, that records a hypothesis and its outcome together with the hunt's own query copies, bookmarks, entities, comments and the incidents and analytics rules it produced. It is the tool for running and tracking a proactive investigation end to end.
What a hunt holds.
- Hypothesis and status. You name the hunt, describe the hypothesis, and set its hypothesis state (for example Validated or Invalidated) and status as the work progresses. These record progress and feed the metrics; they do not create rules or export anything by themselves.
- Queries — the queries you pick are cloned into the hunt. The clones are independent of the workspace's Queries tab and of other hunts, so narrowing a query inside a hunt changes nothing for colleagues running the original.
- Bookmarks, entities and comments — evidence collects inside the hunt; the Entities tab is built from the entities in the hunt's bookmarks.
Turning findings into outcomes.
| Goal | Where in the hunt |
|---|---|
| A scheduled detection from a hunt query | Queries tab: right-click the query > Create analytics rule; the rule is prepopulated with the query's name, description and KQL and listed under the hunt's related analytics rules |
| Add an indicator to threat intelligence, or run an entity playbook | Entities tab: right-click the entity (for example an IP address) for its type-specific actions |
| Escalate evidence | Actions > Create incident; the Add bookmarks step lists only the hunt's bookmarks not already assigned to an incident, and the new incident appears under related incidents |
The Hunts tab's metrics bar counts validated hypotheses, new incidents and new analytics rules, which gives a SOC lead a measure of what hunting produced. Other tools can each hold part of this record, but only a hunt keeps hypothesis, cloned queries, evidence and outcomes in one object.
What replaces livestream, and how do you follow up on a hunting query?
Livestream is no longer available in Microsoft Sentinel; to keep a hunting query working after the hunt, Microsoft points you to KQL jobs, analytics rules and playbooks, each of which covers a different need.
| Need | Use | Why the others don't fit |
|---|---|---|
| Run the query on a schedule and keep each run's results in the data lake for later analysis (notebooks, Security Copilot, advanced hunting) | Scheduled KQL job with a destination table | A KQL job stores results but raises no alert and sends no notification |
| Every future match must reach incident responders | Scheduled analytics rule created from the hunting query | Favorites, bookmarks and KQL jobs don't alert on future matches |
| Notify a channel (for example Microsoft Teams) or take an action when the rule fires | Automation rule that runs a playbook | The Hunting page has no notification setting |
Promoting a high-value query. After a compromise, Microsoft's guidance is to turn hunting queries that give high-value insight into detection rules, so the insight surfaces as alerts. From the query's results choose New alert rule > Create Microsoft Sentinel alert; the analytics rule wizard opens with the KQL prepopulated. In a hunt, use Create analytics rule on the hunt's Queries tab instead.
Requirements often combine these needs, and then each need gets its own tool from the table; nothing on the Hunting page itself schedules a query. Analytics rules read the analytics tier; data that exists only in the data lake tier is promoted first (next section). Writing analytics rules in depth belongs to the detections lesson.
What are KQL jobs in the Microsoft Sentinel data lake?
A KQL job is a one-time or scheduled KQL query that runs against Microsoft Sentinel data lake tables (and federated tables) and writes its results to a table, either promoting them to the analytics tier or keeping them in the lake tier. You create jobs in the Defender portal under Data lake exploration > Jobs (Create job, or Create from template).
Where the output goes, and what it's called.
| Destination | Tier | New table suffix |
|---|---|---|
| A Microsoft Sentinel workspace | Analytics (queryable by analytics rules, workbooks and advanced hunting) | _KQL_CL |
| The System tables workspace | Data lake (cheaper storage; read by notebooks and Data lake exploration) | _KQL |
For comparison, notebook output uses _SPRK (lake) and _SPRK_CL (analytics), and summary rules write plain _CL tables. Choose the System tables destination when only lake tools will read the data and storage cost matters.
New or existing table. A job writes to one output table. It can create a new table or append to an existing one; when it appends, the query's output schema must match the destination table's schema, or the job fails at run time. Adding a column with extend is enough to break it: project back to the existing columns, add the column to the table, or write to a new table.
What a job can read. Lake data going back up to 12 years; several source workspaces at once (same-named tables are unioned by default, or use workspace()); and federated tables such as Microsoft Entra ID, Microsoft 365 and Microsoft Resource Graph, which you query without ingesting them into a workspace.
Keep promotion cheap. Analytics-tier ingestion and storage cost more, so filter to the rows you need (for example indicator matches), summarize before writing when only counts are needed, and project only the columns you need. Promoting a filtered result is far cheaper than moving a whole table to the Analytics tier with long retention.
TimeGenerated is rewritten for old rows. When a job writes rows whose TimeGenerated is older than two days, ingestion overwrites it with the ingestion time. Copy the original timestamp into its own column (for example | extend EventTime = TimeGenerated) and chart on that, or a six-month attack timeline collapses into the day the job ran.
Permissions. Users need a supported Microsoft Entra ID role to create and schedule jobs (covered with Sentinel roles in the platform lesson). Creating a new analytics-tier table is done by the data lake's system-assigned managed identity (named msg-resources-<guid>), which needs Log Analytics Contributor on the destination Log Analytics workspace. If appends succeed but new-table jobs fail, that assignment is the missing piece.
Templates. Create from template opens the wizard with the template's query, destination table, schedule and description filled in; you only select the destination workspace.
How do you schedule KQL jobs, and what limits apply?
A KQL job runs either once or on a schedule (by the minute, hourly, daily, weekly or monthly), and its first run must start at least 30 minutes after you create or edit it.
Scheduling rules.
- The wizard rejects a start time less than 30 minutes away; the same rule applies after an edit.
- Editing a one-time job runs it again immediately, even if you changed only the description. If the job appends to an existing table, the rerun writes every row a second time.
- Ingestion latency. New rows typically take up to about 15 minutes to become queryable in the lake. A job that reads up to
now()keeps missing the late tail. Set the window's end tonow()minus a delay and its start to the end minus the lookback; to write each event exactly once, make the lookback equal to the run interval. Overlapping windows catch late data but create duplicates.
// Hourly job: delay 15 minutes, lookback 1 hour
CommonSecurityLog
| where TimeGenerated between (ago(75m) .. ago(15m))
| where DeviceAction == "Deny"Service limits (per tenant).
| Limit | Behaviour |
|---|---|
| 5 concurrent job executions | A sixth job is rejected, not queued; it runs only at its next scheduled time. The count is per tenant, not per user. Stagger start times |
| 100 enabled jobs | Disable or delete jobs to add more |
| 1-hour query timeout | The run ends with partial results |
| One output table per job | Use separate jobs for separate tables |
Unsupported in jobs: adx(), arg(), externaldata(), ingestion_time() and user-defined functions. Every other KQL operator and function works, including joins across tables and workspaces. To use a list from a CSV, load it into a table first; to use Resource Graph, query its federated table instead of arg().
Jobs are disabled automatically when one of their source workspaces is deleted.
What are summary rules, and how do you design and operate them?
A summary rule runs a KQL query (usually with summarize) against a source table on a fixed bin schedule and writes the aggregated results to a custom _CL table on the Analytics plan, so dashboards and rules read a small, fast table while the verbose raw data stays in a low-cost tier. It is the documented pattern for high-volume, low-security-value logs such as web proxy or network flow data.
Design.
- Bin size (
binSize): 20, 30, 60, 120, 180, 360, 720 or 1,440 minutes. A rule processes only recent incoming data, at most 24 hours back; it has no historical time range and cannot produce weekly rollups. - Source plan decides the operators. Over an Analytics source you can use almost the full query language, except cross-resource and cross-service queries and the plugins that reshape the schema (
bag_unpack,narrow,pivot). Over a Basic source, all operators work on the single source table, and you can enrich with thelookupoperator against up to five Analytics tables (for example a threat intelligence table);joinis not the way. Auxiliary and data lake sources differ mainly in cost (below). User-defined functions aren't supported. - One workspace. A rule runs inside one Log Analytics workspace, writes to a table in that workspace and doesn't support cross-resource queries (including
ARG()cross-service queries). - Templates. In Content hub, filter Content type by Summary rules and install a template; then on the Summary rules page's Templates tab select it and Create, and adjust the prepopulated wizard before saving.
- Up to 100 active rules per workspace. Output rows carry
_RuleName,_BinStartTimeand_BinSize.
Cost. Summary rules have no charge of their own. You pay for (1) the query: free over an Analytics source, a data scan charge over a Basic, Auxiliary or lake source; and (2) ingestion of the results, which always uses the Analytics plan.
Operations.
| Situation | What to do / what happens |
|---|---|
| Source data arrives late, so summaries undercount | Set binDelay to the known delay or more (up to 1,440 minutes). The default wait is short (about three and a half minutes, up to 10% of the bin size). Only the delay setting waits for late rows; other settings change the window, not whether the rows have arrived |
| You need run history and failure alerts | Enable the Summary Logs diagnostic setting; runs are logged to LASummaryLogs (Started, Succeeded, Failed). Alert on Status == "Failed". The diagnostic setting has its own cost but needs no query changes |
| A bin fails | The rule retries the bin automatically (up to 10 attempts within eight hours, after which the bin is skipped); after eight consecutive bin retries the rule is put on hold (isActive: false). You can also retry a specific bin manually |
| The destination table is deleted while the rule is active | The rule is suspended and an event is logged to LASummaryLogs. Recreate the table to resume (data is restored according to retention), or delete the rule and table |
| A new source column never appears in the destination | The destination schema is fixed when the rule is created or updated. With an output that can grow, such as arg_max(TimeGenerated, *), new columns are dropped: update the rule (or add the column to the table manually) |
Summary rule or KQL job: which should you use?
Use a summary rule for continuous aggregation of new data inside one workspace on bins of up to a day; use a KQL job for anything historical, one-off, cross-workspace, federated or on a weekly or monthly cadence. Both can write to the analytics tier, but they differ on time range and scope.
| Summary rule | KQL job | |
|---|---|---|
| Time range | Recent incoming data only, up to 24 hours back; no historical range | Any range in the lake, up to 12 years |
| Cadence | Continuous bins of 20 to 1,440 minutes | One-time, or by the minute, hourly, daily, weekly, monthly |
| Scope | One workspace; no cross-resource queries | Multiple source workspaces; federated tables (Entra ID, Microsoft 365, Resource Graph) |
| Output | Analytics-plan _CL table in the same workspace | One table: _KQL_CL (analytics) or _KQL (System tables, lake) |
| Late data | binDelay | End the window at now() minus a delay |
| Typical use | Hourly or daily counts of verbose logs for workbooks and rules | Promoting IOC matches from months of lake data; weekly rollups; regional workspaces into one table |
Many requirements need both: a one-time KQL job for the historical search and a summary rule for the ongoing daily summary. Moving a whole table to the Analytics tier satisfies most needs too, at the highest cost. Notebook jobs can also aggregate, but they need Python code and a Spark pool, so they suit analysis that KQL can't express rather than plain rollups. arg() works in neither tool; Resource Graph data reaches a KQL job through its federated table.
How do you hunt with data lake notebooks and the Sentinel MCP server?
Data lake notebooks are Jupyter notebooks that run Python and Apache Spark against Microsoft Sentinel data lake tables from Visual Studio Code with the Microsoft Sentinel extension; the Sentinel MCP server lets AI agents such as GitHub Copilot query the same security data in natural language. Both suit hunting that KQL alone handles poorly: data frames, statistics, charts or agent-driven exploration.
Notebooks. After signing in through the extension you choose a Microsoft Sentinel runtime pool (Small, Medium or Large) and work through the MicrosoftSentinelProvider class:
from sentinel_lake.providers import MicrosoftSentinelProvider
data_provider = MicrosoftSentinelProvider(spark)
data_provider.list_databases()
df = data_provider.read_table("DeviceProcessEvents", "SOC-Workspace")read_table(table, database_name, database_id):database_nameis the workspace and defaults to System tables, so a workspace table needs its workspace named; adddatabase_idonly when workspace names aren't unique.save_as_tablewrites to the lake tier when the name ends_SPRKand to the analytics tier when it ends_SPRK_CL. Append is the default; the analytics tier supports only append, and overwrite works only in the lake tier.- Libraries: only the Azure Synapse runtime libraries (pandas, PySpark and so on) and the Microsoft Sentinel provider.
%pip installand custom libraries aren't supported, whatever the pool size.
Notebook jobs run a notebook on demand or on a schedule (by the minute, hourly, daily, weekly or monthly) without anyone opening VS Code. Create them from the Sentinel extension in VS Code.
- Submitting uploads the notebook and configuration to the data lake; the job no longer depends on your local file. To change the code, download the job definition or latest notebook, edit it, choose Edit job and Submit. Renaming a job changes only its label.
- The Defender portal's Jobs page lists notebook jobs and can enable or disable them, but can't edit them.
- Parameters have three levels: notebook values (defaults in the parameter cell), job configuration values (saved with the job and used by scheduled runs) and runtime values (entered for Run now, applying to that run only). To change scheduled runs, edit the job configuration value and resubmit.
- Concurrency: three notebook jobs run at once and further jobs are queued — unlike KQL jobs, which are rejected beyond five.
The Sentinel MCP server is a hosted service authenticated with Microsoft Entra ID: nothing to deploy and no app registration or secret. It offers scenario-focused tool collections:
| Collection | URL | Purpose |
|---|---|---|
| Data exploration | https://sentinel.microsoft.com/mcp/data-exploration | Query the Sentinel data lake: list_sentinel_workspaces, search_tables, query_lake, entity analyzers such as analyze_user_entity |
| Triage | https://sentinel.microsoft.com/mcp/triage | Incidents, alerts and advanced hunting (for example ListIncidents, GetIncidentById, ListAlerts, RunAdvancedHuntingQuery); it can't query the data lake |
| Agent creation | https://sentinel.microsoft.com/mcp/security-copilot-agent-creation | Build Security Copilot agents |
- Connect in VS Code: Ctrl+Shift+P > MCP: Add Server > HTTP, enter the collection URL, name the server, choose its scope and sign in. In Copilot Chat agent mode the tools appear under Configure Tools.
- Roles: at least Security Reader (Security Operator or Security Administrator also work). The entity analyzer tools additionally need Security Copilot Contributor, because they consume security compute units (SCUs); Security Copilot Owner is only for monitoring usage.
- Call order: the data exploration tools need a workspace ID to target the right workspace, so an agent calls
list_sentinel_workspacesfirst, thensearch_tablesto find tables and schemas, thenquery_laketo run KQL. - Entity analyzer limits:
analyze_user_entitycovers at most a seven-day window and works only for users with a Microsoft Entra object ID.
Tip. Questions on this topic are short SOC scenarios in Microsoft Sentinel where the analyst must pick the Hunting page action, column or tab, the data lake tool (KQL job, summary rule, notebook job) or the MCP collection and role that meets a stated requirement. Options are usually close alternatives that are all real features, so the deciding detail is a limit, a tier, a time range or a permission. Many stems hinge on a constraint such as minimizing ingestion cost, least privilege, least administrative effort, writing each event exactly once or not ingesting a source, and troubleshooting items describe a failure whose cause you must identify. Some items are Select TWO, and a few show a short KQL or Python snippet to fix.
- N/A on the Hunting page means the query's data source isn't connected; 0 means it ran and found nothing.
- Results delta and delta percentage always compare the last 24 hours with the 24 to 48 hours before; sort by percentage to surface small queries that suddenly multiplied.
- Only custom-source hunting queries are editable: clone Content hub queries, and edit repository queries in the repository.
- Bookmarks inherit the query's entity and MITRE mappings, land in the HuntingBookmark table, and exist only in the Sentinel hunting experience, not in advanced hunting.
- Hunt queries are independent clones; create analytics rules from a hunt's Queries tab and TI indicators from its Entities tab.
- Livestream is gone: KQL jobs persist results, analytics rules alert, automation rules with playbooks notify.
- KQL job output: _KQL_CL in a Sentinel workspace (analytics), _KQL in System tables (lake); appends need a matching schema.
- KQL jobs: start at least 30 minutes out, editing a one-time job reruns it, five concurrent per tenant (extra jobs rejected), no externaldata(), arg(), adx(), ingestion_time() or UDFs.
- Summary rules aggregate only recent data (bins up to 1,440 minutes), cost a data scan on low-cost sources plus Analytics ingestion, and are monitored through LASummaryLogs.
- Notebooks: _SPRK lake / _SPRK_CL analytics (append only), Synapse and Sentinel provider libraries only; the MCP server needs Security Reader, plus Security Copilot Contributor for entity analyzers.
Frequently asked questions
What does N/A mean in the Results column of the Microsoft Sentinel Hunting page?
N/A means the hunting query isn't active in your environment because the data source it reads isn't connected to the workspace, so it has nothing to run against. It is different from 0, which means the query ran and found no matches. Filter Results on N/A and hover over the info icon to see which data sources would activate the query.
Can you create bookmarks in Defender XDR advanced hunting?
No. The unified advanced hunting experience in the Defender portal doesn't support bookmarks. Bookmarks are part of the Microsoft Sentinel hunting experience: run the query on the Sentinel Hunting page, select the rows and choose Add bookmark. Bookmarks are stored in the HuntingBookmark table and can be added to new or existing incidents.
What replaced livestream in Microsoft Sentinel?
Livestream is no longer available in Microsoft Sentinel. Microsoft points hunters to KQL jobs to run queries on a schedule and keep their results in the data lake, to analytics rules to raise alerts on future matches, and to playbooks (run by automation rules) to notify or act when those rules fire.
What is the difference between _KQL_CL and _KQL tables in the Sentinel data lake?
Both are new tables created by KQL jobs. A table ending _KQL_CL is created in a Microsoft Sentinel workspace in the analytics tier, where analytics rules, workbooks and advanced hunting can use it. A table ending _KQL is created in the System tables workspace in the data lake tier, which is cheaper and read by notebooks and Data lake exploration.
Should I use a summary rule or a KQL job?
Use a summary rule to continuously aggregate new incoming data in one workspace on bins of 20 to 1,440 minutes. Use a KQL job when the data is historical (up to 12 years in the lake), when the work runs once, weekly or monthly, when several workspaces or federated sources such as Resource Graph are involved, or when matching rows must be promoted rather than aggregated.
Why did my KQL job fail with a concurrency error?
A tenant can run five KQL jobs at the same time. A job that starts while five are already running is rejected rather than queued, and it runs only at its next scheduled time. The limit is per tenant, not per user, so staggering job start times avoids the collision. Notebook jobs behave differently: beyond three concurrent jobs they are queued.
How do I monitor summary rule failures?
Enable the Summary Logs diagnostic setting on the workspace. Azure Monitor then writes every summary rule run, with a status of Started, Succeeded or Failed, to the LASummaryLogs table, and you can create a log alert on failed runs. The rule's own queries don't need to change, although the diagnostic setting has its own cost.
What permissions does the Microsoft Sentinel MCP server need?
Signing in to the Sentinel MCP server requires at least the Security Reader role (Security Operator or Security Administrator also work). Entity analyzer tools such as analyze_user_entity also require the Security Copilot Contributor role, because they consume security compute units. The server is hosted and uses Microsoft Entra ID, so no app registration or deployment is needed.
Source
This lesson covers the "Perform threat hunting" domain of the official SC-200 exam guide. Vendors revise their guides — check the source for the current version.
- Microsoft SC-200 study guide — Microsoft Learn
Sign up free to mark lessons complete, bookmark topics and track your exam readiness.