次の方法で共有


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

適用対象:SQL Server

データベース メール構成ウィザード または Transact-SQL を使用して、データベース メールのパブリック プロファイルとプライベート プロファイルを作成します。 メール プロファイルの詳細については、「 データベース メール構成オブジェクト」を参照してください。

ヒント

Azure SQL Managed Instance では、データベース メール プロファイルを作成する必要はありません。Azure SQL Managed Instance は、 AzureManagedInstance_dbmail_profileというプロファイルを検索するように既に構成されています。 詳細とサンプル スクリプトについては、「 Azure SQL Managed Instance SQL Agent ジョブの通知」を参照してください。

前提条件

プロファイルに対応する 1 つ以上のデータベース メール アカウントを作成します。 データベース メール アカウントの作成方法については、「 データベース メール アカウントの作成」を参照してください。

セキュリティ

パブリック プロファイルにより、 msdb データベースにアクセスできるすべてのユーザーが、このプロファイルを使用して電子メールを送信できます。 プライベート プロファイルを使用できるのは、ユーザーまたはロールです。 プロファイルにロールのアクセス権を付与すると、保守が簡単なアーキテクチャを作成できます。 メールを送信するには、 データベースの msdb のメンバーであることに加えて、少なくとも 1 つのデータベース メール プロファイルへのアクセス許可が必要です。

アクセス許可

プロファイル アカウントを作成し、ストアド プロシージャを実行するユーザーは、sysadmin 固定サーバー ロールのメンバーである必要があります。

データベース メール構成ウィザードを使用してデータベース メール プロファイルを作成する

以下の手順では、SQL Server Management Studio (SSMS) を使います。 最新バージョンの SSMS (aka.ms/ssms) をダウンロードします。

  1. オブジェクト エクスプローラーで、データベース メールを構成する SQL Server インスタンスに接続し、サーバー ツリーを展開します。

  2. [管理] ノードを展開します。

  3. データベース メールをダブルクリックして、 データベース メール 構成ウィザードを開きます。

  4. [構成タスクの選択] ページで、 [データベース メール アカウントおよびプロファイルを管理する] オプションを選んで、 [次へ]を選択します。

  5. [プロファイルとアカウントの管理] ページで、 [新しいプロファイルを作成する] オプションを選び、 [次へ]を選択します。

  6. [新しいプロファイル] ページで、プロファイル名と説明を指定し、プロファイルに含めるアカウントを追加して、[次へ] を選択します。

  7. [ウィザードの完了] ページで、実行される動作を確認し、 [完了] を選択して、新しいプロファイルの作成を完了します。

データベース メールのプライベート プロファイルを構成するには

  1. データベース メール構成ウィザードを開きます。

  2. [構成タスクの選択] ページで、 [データベース メール アカウントおよびプロファイルを管理する] オプションを選んで、 [次へ]を選択します。

  3. [プロファイルとアカウントの管理] ページで、 [プロファイル セキュリティの管理] オプションを選び、[次へ]を選択します。

  4. [プライベート プロファイル] タブで、構成するプロファイルのチェック ボックスをオンにし、 [次へ]を選択します。

  5. [ウィザードの完了] ページで、実行される動作を確認し、 [完了] を選択して、プロファイルの構成を完了します。

データベース メールのパブリック プロファイルを構成するには

  1. データベース メール構成ウィザードを開きます。

  2. [構成タスクの選択] ページで、 [データベース メール アカウントおよびプロファイルを管理する] オプションを選んで、 [次へ]を選択します。

  3. [プロファイルとアカウントの管理] ページで、 [プロファイル セキュリティの管理] オプションを選び、[次へ]を選択します。

  4. [パブリック プロファイル] タブで、構成するプロファイルのチェック ボックスをオンにし、 [次へ]を選択します。

  5. [ウィザードの完了] ページで、実行される動作を確認し、 [完了] を選択して、プロファイルの構成を完了します。

Transact-SQL を使用してデータベース メール プロファイルを作成する

SQL Server インスタンスで T-SQL コマンドを実行するには、 SQL Server Management Studio (SSMS)Visual Studio Code 用の MSSQL 拡張機能sqlcmd、またはお気に入りの T-SQL クエリ ツールを使用します。

T-SQL を使用してプライベート データベース メール プロファイルを作成する

  1. SQL Server インスタンスに接続する。 新しいクエリ ウィンドウを開きます。

  2. 新しいプロファイルを作成するには、次のsysmail_add_profile_spシステム ストアド プロシージャ 実行します。

    EXECUTE msdb.dbo.sysmail_add_profile_sp
      @profile_name = 'Profile Name'  
    , @description = 'Description';
    

    前のスクリプトでは、 @profile_name はプロファイルの名前であり、 @description はプロファイルのオプションのわかりやすい説明です。

  3. アカウントごとに、次のsysmail_add_profileaccount_spシステム ストアド プロシージャ 実行します。

    EXECUTE msdb.dbo.sysmail_add_profileaccount_sp
      @profile_name = 'Profile Name'
    , @account_name = 'Name of the account'  
    , @sequence_number = 'sequence number of the account within the profile.';
    

    前のサンプル スクリプトでは、 @profile_name はプロファイルの名前、 @account_name はプロファイルに追加するアカウントの名前 @sequence_number 、プロファイルでアカウントを使用する順序を決定します。

  4. このプロファイルを使用してメールを送信する各データベース ロールまたはユーザーについて、プロファイルへのアクセス権を付与します。 これを行うには、次のsysmail_add_principalprofile_spシステム ストアド プロシージャ 実行します。

    EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
     @profile_name = 'Name of the profile'
    , @principal_name = 'Name of the database user or role'  
    , @is_default = 'Default profile enabled';
    

    前のサンプル スクリプトでは、 @profile_name はプロファイルの名前、 @principal_name はデータベース ユーザーまたはロールの名前です。 @is_default は、このプロファイルがデータベース ユーザーまたはロールの既定値であるかどうかを決定します。

次の例ではまず、データベース メール アカウントを作成し、データベース メールのプライベート プロファイルを作成します。その後、アカウントをプロファイルに追加し、そのプロファイルへのアクセス権を、 データベースの msdb データベース ロールに与えます。

-- Create a Database Mail account  
EXECUTE msdb.dbo.sysmail_add_account_sp  
    @account_name = 'AdventureWorks Administrator',  
    @description = 'Mail account for administrative e-mail.',  
    @email_address = 'dba@Adventure-Works.com',  
    @replyto_address = 'danw@Adventure-Works.com',  
    @display_name = 'AdventureWorks Automated Mailer',  
    @mailserver_name = 'smtp.Adventure-Works.com' ;  

-- Create a Database Mail profile  
EXECUTE msdb.dbo.sysmail_add_profile_sp  
    @profile_name = 'AdventureWorks Administrator Profile',  
    @description = 'Profile used for administrative mail.' ;  

-- Add the account to the profile  
EXECUTE msdb.dbo.sysmail_add_profileaccount_sp  
    @profile_name = 'AdventureWorks Administrator Profile',  
    @account_name = 'AdventureWorks Administrator',  
    @sequence_number =1 ;  

-- Grant access to the profile to the DBMailUsers role  
EXECUTE msdb.dbo.sysmail_add_principalprofile_sp  
    @profile_name = 'AdventureWorks Administrator Profile',  
    @principal_name = 'ApplicationUser',  
    @is_default = 1 ;  

T-SQL を使用してデータベース メールのパブリック プロファイルを作成する

  1. SQL Server インスタンスに接続する。 新しいクエリ ウィンドウを開きます。

  2. 新しいプロファイルを作成するには、システム ストアド プロシージャ sysmail_add_profile_sp (Transact-SQL) を実行します。

    EXECUTE msdb.dbo.sysmail_add_profile_sp
      @profile_name = 'Profile Name'  
    , @description = 'Description';
    

    前のスクリプトでは、 @profile_name はプロファイルの名前であり、 @description はプロファイルの省略可能な説明です。

  3. アカウントごとに、ストアド プロシージャ sysmail_add_profileaccount_sp (Transact-SQL) を実行します。

    EXECUTE msdb.dbo.sysmail_add_profileaccount_sp
      @profile_name = 'Name of the profile'  
    , @account_name* = 'Name of the account'  
    , @sequence_number* = 'sequence number of the account within the profile.'  
    

    前のサンプル スクリプトでは、 @profile_name はプロファイルの名前、 @account_name はプロファイルに追加するアカウントの名前 @sequence_number 、プロファイルでアカウントを使用する順序を決定します。

  4. パブリック アクセスを許可するには、ストアド プロシージャ sysmail_add_principalprofile_sp (Transact-SQL) を実行します。

    EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
      @profile_name = 'Name of the profile' 
    , @principal_name = 'public or 0'  
    , @is_default = 'Default Profile enabled';
    

    前のサンプル スクリプトでは、 @profile_name はプロファイルの名前であり、これがパブリック プロファイルであることを示 @principal_name 、このプロファイルがデータベース ユーザーまたはロールの既定値であるかどうかを決定 @is_default

次の例ではまず、データベース メール アカウントを作成し、データベース メールのプライベート プロファイルを作成します。その後、アカウントをプロファイルに追加し、そのプロファイルへのパブリック アクセス権を与えます。

-- Create a Database Mail account  
EXECUTE msdb.dbo.sysmail_add_account_sp  
    @account_name = 'AdventureWorks Public Account',  
    @description = 'Mail account for use by all database users.',  
    @email_address = 'db_users@Adventure-Works.com',  
    @replyto_address = 'danw@Adventure-Works.com',  
    @display_name = 'AdventureWorks Automated Mailer',  
    @mailserver_name = 'smtp.Adventure-Works.com' ;  

-- Create a Database Mail profile  
  EXECUTE msdb.dbo.sysmail_add_profile_sp  
    @profile_name = 'AdventureWorks Public Profile',  
    @description = 'Profile used for administrative mail.' ;  

-- Add the account to the profile  
EXECUTE msdb.dbo.sysmail_add_profileaccount_sp  
    @profile_name = 'AdventureWorks Public Profile',  
    @account_name = 'AdventureWorks Public Account',  
    @sequence_number =1 ;  

-- Grant access to the profile to all users in the msdb database  
EXECUTE msdb.dbo.sysmail_add_principalprofile_sp  
    @profile_name = 'AdventureWorks Public Profile',  
    @principal_name = 'public',  
    @is_default = 1 ;