Third Party Objects
Overview
msdb is where backup tools, monitoring agents and half the maintenance scripts on the internet put their tables.
The objects are real, they hold real data, and they are invisible: nothing inventories them, they are not in anybody’s source control, and they are lost the day msdb is rebuilt or the instance is migrated, which is the day somebody finds out they existed.

Where to find it
Expand a server in the tree, expand the msdb database, then MSDB → Third Party Objects.
The test, and its limits
The test is is_ms_shipped, which is set on everything SQL Server setup created and on nothing else.
It is a good test and not a perfect one, and the page says so: other Microsoft components install into msdb too, and what they leave is marked the same way as a vendor’s table.
So the page ranks and describes rather than accusing, and the create date against the instance’s own build date is what usually settles it. Something created three years after setup ran was not put there by setup.
Four kinds of thing turn up here
| Kind | Why it matters |
|---|---|
| Tables with rows in them | The ones that matter: a backup tool’s history, a monitoring agent’s samples, somebody’s index maintenance log with four years of data. |
| Procedures and functions | Where a maintenance script lives when it was installed the convenient way rather than into its own database. |
| Triggers, including database level DDL triggers | These run on changes inside msdb itself. |
| Users and roles setup did not create | Principals somebody added, usually so a tool could write here. |
Reading the chart

One bar per object, by the space it holds, which is what separates a working table from a leftover definition.
The line under the header is the honest half of the page. is_ms_shipped is the test, other Microsoft components install into msdb too, and what they leave is marked exactly the way a vendor’s table is.
Reading the grid

| Column | What it is |
|---|---|
| Name | The object or principal, schema qualified. |
| What it is | Table, view, procedure, function, trigger, user, or role. |
| Rows | Row count, for the objects that have one. This is the column that separates a leftover from a working table. |
| Space | What it holds. |
| Created | The create date, against which the instance build date is the reference. |
| Last changed | The modify date. |
| Verdict | What this object appears to be, and what would happen to it in a rebuild or a migration. |
The toolbar
| Control | What it does |
|---|---|
| Space and retention | Opens msdb Space and Retention, where these tables show up in the space split. |
| Agent security | Opens Agent Security, for the principals side. |
Everything here is read only
What to do about any of it is a decision about somebody else’s product, not one this page should be making. The page inventories and describes; it changes nothing and recommends nothing about another vendor’s schema.
Where the data comes from
| Source | What it gives |
|---|---|
sys.objects in msdb |
Every object with is_ms_shipped = 0, its type, create and modify dates. |
sys.schemas |
The schema names. |
sys.dm_db_partition_stats |
Rows and space for the tables. |
sys.triggers, sys.server_triggers |
Object and database level triggers. |
sys.database_principals |
Users and roles setup did not create. |
sys.dm_os_sys_info / sys.databases |
The instance build reference for the create date comparison. |
Messages you may see
Nothing has been added to msdb. Every object and every principal in this msdb was created by SQL Server setup. That is the state a rebuild of msdb would leave it in, and it means nothing here would be lost.
Related reports
| Report | Why you would go there |
|---|---|
| msdb Space and Retention | What these tables weigh, and that nothing in SQL Server trims them. |
| Agent Security | The principals these tools connect as. |
| Job Commands | The jobs that write into these tables. |
| Package Store | Another place a third party leaves something behind. |
Frequently asked questions
Is anything here dangerous? The page does not say so, because it cannot know. What it says is what is there, how much data it holds, and that setup did not create it.
We are migrating to a new server. What do I do with this list? Script the objects and move the data, or accept losing it. A migration recreates msdb from setup, so everything on this page starts empty on the new instance.
A Microsoft component shows up here. That is the known limit of the is_ms_shipped test, and the page says so rather than pretending otherwise. The create date usually identifies it.
Can I drop these? Only if you know what installed them. A backup tool that finds its history table missing usually recreates it and loses the history, which may be exactly what you wanted or exactly what you did not.