web-dev-qa-db-ja.com

保守計画でオペレーターに通知タスクを変更するときのエラー

新しいメンテナンスプランでオペレーターに通知タスクを変更できません。 SQL Server Management Studioでは、タスクをダブルクリックした後にこのエラーが表示されます。

プロパティIsMailHostは、データベース '[msdb]'では使用できません。このプロパティはこのオブジェクトに存在しないか、アクセス権が不十分なために取得できない可能性があります。

メンテナンスプランの他のタスクは正常に機能しています。 SQL Server 2016 Standard(13.0.1601.5)とSQL Sever Management Studio 16.5を使用しています。データベースメールもパブリックプロファイルで構成されます。

4
Rofni

投稿したメッセージから、MSDBがメールホストステータスに設定されていないことがわかります。

Database.IsMailHostプロパティ-データベースがメールホストとして構成されているかどうかを示す値を取得します。

データベースがメールホストであるかどうかを確認するには、次のPowerShellコマンドを使用します。 SQL Server 2014でテストしました。

Powershell ISEで以下のコードを使用して確認します:(デフォルトのインスタンスのみ)

$srv = new-Object Microsoft.SqlServer.Management.Smo.Server("(local)")
$db = New-Object Microsoft.SqlServer.Management.Smo.Database
$db = $srv.Databases.Item("MSDB") 
Write-Host "Database is a mail Host :" $db.IsMailHost 

MSDBデータベースは、データベースメールホストデータベースです。このデータベースには、データベースメールのストアドプロシージャとメッセージングオブジェクトが含まれています。

既定では、データベースメールはアクティブではありません。

次のいずれかを使用して、データベースメールを明示的に有効にする必要があります。

  1. データベースメール構成ウィザード

または

  1. Sp_configureシステムストアドプロシージャのデータベースメールXPsオプション。

次の例では、データベースメール拡張ストアドプロシージャを有効にします。

sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'Database Mail XPs', 1;
GO
RECONFIGURE
GO
1
SQLBoy