次の方法で共有


データベース メール構成オブジェクト

データベース メールには 2 つの構成オブジェクトがあります。データベース構成オブジェクトを使用すると、データベース アプリケーションまたは SQL Server エージェントから電子メールを送信するときにデータベース メールで使用する必要がある設定を構成できます。

  • データベース メール アカウント

  • データベース メール プロファイル

データベース メール構成オブジェクトのリレーションシップ

この図は、2 つのプロファイル、3 つのアカウント、3 人のユーザーを示しています。 ユーザー 1 は、アカウント 1 とアカウント 2 を使用するプロファイル 1 にアクセスできます。 ユーザー 3 は、アカウント 2 とアカウント 3 を使用するプロファイル 2 にアクセスできます。 ユーザー 2 は、プロファイル 1 とプロファイル 2 の両方にアクセスできます。

ユーザー、プロファイル、アカウントの関係

データベース メール アカウント

データベース メール アカウントには、Microsoft SQL Server が SMTP サーバーに電子メール メッセージを送信するために使用する情報が含まれています。 各アカウントには、1 つの電子メール サーバーの情報が含まれています。

データベース メールでは、SMTP サーバーと通信するための 3 つの認証方法がサポートされています。

  • Windows 認証: データベース メールは、SMTP サーバーでの認証に SQL Server データベース エンジンの Windows サービス アカウントの資格情報を使用します。

  • 基本認証: データベース メールは、SMTP サーバーで認証するために指定されたユーザー名とパスワードを使用します。

  • 匿名認証: SMTP サーバーは認証を必要としません。 データベース メールは、SMTP サーバーでの認証に資格情報を使用しません。

アカウント情報は msdb データベースに格納されます。 各アカウントは、次の情報で構成されます。

  • アカウントの名前。

  • アカウントの説明。

  • アカウントの電子メール アドレス。

  • アカウントの表示名。

  • アカウントの返信情報として使用する電子メール アドレス。

  • 電子メール サーバーの名前。

  • 電子メール サーバーの種類。 Microsoft SQL Server の場合、これは常に簡易メール転送プロトコル (SMTP) です。

  • 電子メール サーバーのポート番号。

  • SMTP メール サーバーへの接続が Secure Sockets Layer (SSL) を使用して確立されているかどうかを示すビット列。

  • SQL Server データベース エンジン用に構成された資格情報を使用して SMTP サーバーへの接続を確立するかどうかを示すビット列。

  • 電子メール サーバーで認証が必要な場合に、電子メール サーバーへの認証に使用するユーザー名。

  • 電子メール サーバーで認証が必要な場合に、電子メール サーバーへの認証に使用するパスワード。

データベース メール構成ウィザードは、アカウントを作成および管理するための便利な方法を提供します。 msdb の構成ストアド プロシージャを使用して、アカウントを作成および管理することもできます。

データベース メール プロファイル

データベース メール プロファイルは、関連するデータベース メール アカウントの順序付けられたコレクションです。 データベース メールを使用して電子メールを送信するアプリケーションでは、アカウントを直接使用するのではなく、プロファイルを指定します。 アプリケーションが使用するオブジェクトから個々の電子メール サーバーに関する情報を分離すると、柔軟性と信頼性が向上します。プロファイルは自動フェールオーバーを提供するため、ある電子メール サーバーが応答しない場合、データベース メールは別の電子メール サーバーに自動的にメールを送信できます。 データベース管理者は、アプリケーション コードやジョブ ステップを変更することなく、アカウントを追加、削除、または再構成できます。

プロファイルは、データベース管理者が電子メールへのアクセスを制御するのにも役立ちます。 データベース メールを送信するには、 DatabaseMailUserRole のメンバーシップが必要です。 プロファイルを使用すると、管理者はメールを送信するユーザーと使用するアカウントを柔軟に制御できます。

プロファイルは、パブリックまたはプライベートである場合があります。

パブリック プロファイルは、msdb データベース内の DatabaseMailUserRole データベース ロールのすべてのメンバーで使用できます。 DatabaseMailUserRole ロールのすべてのメンバーは、プロファイルを使用して電子メールを送信できます。

プライベート プロファイル は、 msdb データベースのセキュリティ プリンシパルに対して定義されます。 指定されたデータベース ユーザー、ロール、および sysadmin 固定サーバー ロールのメンバーのみが、プロファイルを使用して電子メールを送信することを許可します。 既定では、プロファイルはプライベートであり、 sysadmin 固定サーバー ロールのメンバーにのみアクセスできます。 プライベート プロファイルを使用するには、 sysadmin はプロファイルを使用するアクセス許可をユーザーに付与する必要があります。 さらに、 sp_send_dbmail ストアド プロシージャに対する EXECUTE 権限は、 DatabaseMailUserRole のメンバーにのみ付与されます。 システム管理者は、ユーザーが電子メール メッセージを送信するために、 DatabaseMailUserRole データベース ロールにユーザーを追加する必要があります。

プロファイルを使用すると、電子メール サーバーが到達不能になったり、メッセージを処理できなくなったりした場合の信頼性が向上します。 プロファイル内の各アカウントにはシーケンス番号があります。 シーケンス番号は、データベース メールがプロファイルのアカウントを使用する順序を決定します。 新しい電子メール メッセージの場合、データベース メールでは、メッセージを正常に送信した最後のアカウント、またはメッセージがまだ送信されていない場合は最も低いシーケンス番号を持つアカウントが使用されます。 そのアカウントが失敗した場合、データベース メールは、次にシーケンス番号が最も高いアカウントを使用し、データベース メールがメッセージを正常に送信するか、最も大きいシーケンス番号のアカウントが失敗するまで使用します。 シーケンス番号が最も高いアカウントが失敗した場合、データベース メールは、sysmail_configure_spAccountRetryDelay パラメーターで構成された時間だけメールの送信を試みます。その後、最も低いシーケンス番号からメールを再送信するプロセスを開始します。 sysmail_configure_spAccountRetryAttempts パラメーターを使用して、外部メール プロセスが指定したプロファイル内の各アカウントを使用して電子メール メッセージの送信を試行する回数を構成します。

同じシーケンス番号を持つ複数のアカウントが存在する場合、データベース メールは、特定の電子メール メッセージに対してこれらのアカウントの 1 つのみを使用します。 この場合、データベース メールでは、そのシーケンス番号にどのアカウントが使用されているか、または同じアカウントがメッセージからメッセージに使用されるかは保証されません。

データベース メール構成タスク

次の表では、データベース メールの構成タスクについて説明します。

構成タスク トピック
データベース メール アカウントを作成する方法について説明します データベース メール アカウントを作成する
データベース メール プロファイルを作成する方法について説明します データベース メール プロファイルの作成
データベース メールを構成する方法について説明します データベース メールを構成する
テンプレートを使用してデータベース メール構成スクリプトを作成する方法について説明します

その他のデータベース構成タスク (システム ストアド プロシージャ)

データベース メール構成ストアド プロシージャは、 msdb データベースにあります。

次の表に、データベース メールの構成と管理に使用するストアド プロシージャを示します。

データベース メールの設定

名前 説明
sysmail_configure_sp (Transact-SQL) データベース メールの構成設定を変更します。
sysmail_help_configure_sp (Transact-SQL) データベース メールの構成設定を表示します。

アカウントとプロファイル

名前 説明
sysmail_add_profileaccount_sp (Transact-SQL) データベース メール プロファイルにメール アカウントを追加します。
sysmail_delete_account_sp (Transact-SQL) データベース メール アカウントを削除します。
sysmail_delete_profile_sp (Transact-SQL) データベース メール プロファイルを削除します。
sysmail_delete_profileaccount_sp (Transact-SQL) データベース メール プロファイルからアカウントを削除します。
sysmail_help_account_sp (Transact-SQL) データベース メール アカウントに関する情報を一覧表示します。
sysmail_help_profile_sp (Transact-SQL) 1 つ以上のデータベース メール プロファイルに関する情報を一覧表示します。
sysmail_help_profileaccount_sp (Transact-SQL) 1 つ以上のデータベース メール プロファイルに関連付けられているアカウントを一覧表示します。
sysmail_update_account_sp (Transact-SQL) 既存のデータベース メール アカウントの情報を更新します。
sysmail_update_profile_sp (Transact-SQL) データベース メール プロファイルの説明または名前を変更します。
sysmail_update_profileaccount_sp (Transact-SQL) データベース メール プロファイル内のアカウントのシーケンス番号を更新します。

安全

名前 説明
sysmail_add_principalprofile_sp (Transact-SQL) データベース メール プロファイルを使用するためのデータベース プリンシパルのアクセス許可を付与します。
sysmail_delete_principalprofile_sp (Transact-SQL) データベース ユーザーがパブリックまたはプライベートのデータベース メール プロファイルを使用するためのアクセス許可を削除します。
sysmail_help_principalprofile_sp (Transact-SQL) 特定のデータベース ユーザーのデータベース メール プロファイル情報を一覧表示します。
sysmail_update_principalprofile_sp (Transact-SQL) 特定のデータベース ユーザーのアクセス許可情報を更新します。

システム状態

名前 説明
sysmail_start_sp (Transact-SQL) データベース メール外部プログラムと、関連付けられている SQL Service Broker キューを開始します。
sysmail_stop_sp (Transact-SQL) データベース メール外部プログラムと、関連付けられている SQL Service Broker キューを停止します。
sysmail_help_status_sp (Transact-SQL) データベース メールが開始されているかどうかを示します。

その他の参照情報