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

データベース メールでは、次の 2 種類の構成オブジェクトが提供されます。

  • データベース メール プロファイル。これはアカウントのセットです。

  • データベース メール アカウント。これには、電子メール サーバーの情報が含まれます。

データベース メールでは、msdb データベースに構成ストアド プロシージャが含まれています。Transact-SQL スクリプトを記述して、これらのプロシージャを直接使用できます。

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

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

次の図に、アカウント、プロファイル、およびユーザーの関係を示します。ユーザーには複数のプロファイルを使用する権限がありますが、既定のプロファイルとして定義できるプロファイルは 1 つだけです。各プロファイルでは、複数のアカウントを使用できます。1 つのアカウントが、複数のプロファイルで使用されることがあります。

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

この図には、2 つのプロファイル、3 つのアカウント、および 3 人のユーザーが示されています。ユーザー 1 には、アカウント 1 とアカウント 2 を使用しているプロファイル 1 へのアクセス権があります。ユーザー 3 には、アカウント 2 とアカウント 2 を使用しているプロファイル 2 へのアクセス権があります。ユーザー 2 には、プロファイル 1 とプロファイル 2 の両方へのアクセス権があります。