はじめに
最近のほとんどのシステムでは、通知は通常です。 SQL Serverは、SQL Mailと呼ばれる機能を使用して、電子メールで通知を早期に送信する手段を実装しました。 SQL Server 2005では、データベースメールがリリースされましたが、現在のバージョンのSQLServerでもデータベースメールが機能しています。このような背景から、データベースメールはSQLServerの非常に成熟した機能であると言えます。
私の経験では、データベースメールの展開に関連するいくつかのユースケースに直面しました。
リストは完全ではありませんが、いくつかの問題を確認してください:
- 監視 –データベース管理者としての日々、本格的な監視ツールがなかったため、SQLServerCentralでブログを書いている知人が開発したスクリプトを採用しました。そのスクリプトはHTMLベースでしたが、主要なシステムカタログビューからデータを抽出し、出力を電子メールで管理者に送信するSQLが組み込まれていました。
- 仕事の結果 –また、データベースメールを使用して、データベース管理者や、そのような情報を取得したい通常のユーザーにジョブの出力を配信しました。 SQLエージェントを使用すると、データベースメールを利用して、ジョブのステータス(成功または失敗)を送信できます。ストアドプロシージャsp_send_dbmailを使用してスクリプトを開発することで、さらに先に進むことができます。
- レポート –単純なレポートの場合、 sp_send_dbmail ストアドプロシージャを使用して、結果セットを集約し、ファイルとして、または適切な形式の電子メールで送信することもできます。
要件
データベースメールを構成する際に考慮すべき重要な要件は次のとおりです。
- ポート25(SMTP)は、SQLServerホストとExchangeServerの間で開いている必要があります。これは、ネットワークがファイアウォールによってセグメント化されている環境に関連しています。
- SQL Serverホストには、ドメインに対するメールリレー権限が必要です。 Microsoft Exchange管理者は、それを保証できるはずです。
- メールを送信するためのExchangeサーバーアカウントを作成します。必須ではありませんが、個人的には、自分の環境でどのアカウントがどのアクションを実行するかを制御することを好みます。
手順
SQL Serverインスタンスから電子メールを送信するには、データベースメールを構成する必要があります。次の手順を実行します。
- ウェルカム画面には、これから実行するアクションの概要が表示されます。このプロセスでは、メールプロファイル、メールアカウント、セキュリティを設定してから、システムパラメータを設定します。 (図1を参照)

2.これで、ラジオボタンで選択するオプションが表示されます。初めてデータベースメールを設定するので、最初のラジオボタンを選択します。

3.データベースメール機能を有効にして、構成を続行します。

4.プロファイルを作成します。プロファイルは、SQLServerエンジンが電子メールを送信するために使用するメールアカウントのコレクションです。プロファイルとアカウントを分離することで、柔軟性と信頼性が得られます。メールプロファイルに関連付けられているメールアカウントは自由に変更できます。また、同じプロファイルに複数のメールアカウントを使用できるため、復元力が得られます。

5.メールアカウントの設定に必要な詳細(アカウント名、関連付けられた電子メールアカウント、メールサーバー、および資格情報)を表示します。前述のように、匿名でメールを送信することを選択できます。

メールアカウントを設定すると、メールプロファイルに正常に関連付けられます。アカウントを追加することもできます。セキュリティ上の理由から、[電子メールアドレス]フィールドで指定されているアカウントは、サーバーへの対話型ログオンを拒否する必要があることに注意してください。危険にさらされた場合のダメージを軽減します。

7.次のステップは、プロファイルのセキュリティを設定することです。プロファイルをパブリックにするかプライベートにするかを選択します。パブリックプロファイルは、DatabaseMailUserRoleデータベースロールに追加されたSQLServer上の任意のプリンシパルで使用できます。 。プライベートプロファイルは、sysadminアカウントまたは sp_send_dbmailでEXECUTE権限が付与されている他のプリンシパルのみが使用できます。 ストアドプロシージャ。公開プロフィールは通常、私の目的に合っています。

最後の重要なステップは、システムパラメータを設定することです。ほとんどの場合、この手順をスキップする方が簡単です。再試行、ファイルサイズ、ロギングなどの構成を変更できます。個人的には、1MBを超えるレポートを設定する場合は、ファイルサイズの制限を増やすと便利だと思いました。

9.セットアップを完了します。


結論
この記事では、データベースメールの構成を段階的に確認しました。また、いくつかの実用的なヒントも提供しました。フォローアップ記事では、データベースメールを監視およびトラブルシューティングするためにデータを公開するシステムカタログを調査します。
参考資料
データベースメール構成オブジェクト