次の方法で共有


データベース メール プロファイルを作成する

データベース メール構成ウィザードまたは Transact-SQL を使用して、データベース メールのパブリック プロファイルとプライベート プロファイルを作成します。

開始する前に

[前提条件]

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

安全

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

権限

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

データベース メール構成ウィザードの使用

データベース メール プロファイルを作成するには

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

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

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

  • [ 構成タスクの選択] ページで、[ データベース メール アカウントとプロファイルの管理 ] オプションを選択し、[ 次へ] をクリックします。

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

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

  • [ ウィザードの完了 ] ページで、実行するアクションを確認し、[ 完了 ] をクリックして新しいプロファイルの作成を完了します。

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

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

    • [ 構成タスクの選択] ページで、[ データベース メール アカウントとプロファイルの管理 ] オプションを選択し、[ 次へ] をクリックします。

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

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

    • [ ウィザードの完了 ] ページで、実行するアクションを確認し、[ 完了 ] をクリックしてプロファイルの構成を完了します。

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

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

    • [ 構成タスクの選択] ページで、[ データベース メール アカウントとプロファイルの管理 ] オプションを選択し、[ 次へ] をクリックします。

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

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

    • [ ウィザードの完了 ] ページで、実行するアクションを確認し、[ 完了 ] をクリックしてプロファイルの構成を完了します。

Transact-SQL の使用

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

  • SQL Server インスタンスに接続します。

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

    EXECUTEmsdb.dbo.sysmail_add_profile_sp

    @profile_name = 'Profile Name'

    @description = 'Desciption'

    ここで、@profile_nameはプロファイルの名前、@descriptionはプロファイルの説明です。 このパラメーターは省略可です。

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

    EXECUTEmsdb.dbo.sysmail_add_profileaccount_sp

    @profile_name = 'プロファイルの名前'

    @account_name = 'アカウントの名前'

    @sequence_number = プロファイル内のアカウントのシーケンス番号。 '

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

  • このプロファイルを使用してメールを送信するデータベース ロールまたはユーザーごとに、プロファイルへのアクセス権を付与します。 これを行うには、次のようにストアド プロシージャ sysmail_add_principalprofile_sp (Transact-SQL) を実行します。

    EXECUTE msdb.sysmail_add_principalprofile_sp

    @profile_name = 'プロファイルの名前'

    @ principal_name = 'データベース ユーザーまたはロールの名前'

    @is_default = '既定のプロファイルの状態 '

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

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

-- 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 ;  

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

  • SQL Server インスタンスに接続します。

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

    EXECUTEmsdb.dbo.sysmail_add_profile_sp

    @profile_name = 'Profile Name'

    @description = '説明'

    ここで、@profile_nameはプロファイルの名前、@descriptionはプロファイルの説明です。 このパラメーターは省略可です。

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

    EXECUTEmsdb.dbo.sysmail_add_profileaccount_sp

    @profile_name = 'プロファイルの名前'

    @account_name = 'アカウントの名前'

    @sequence_number = プロファイル内のアカウントのシーケンス番号。 '

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

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

    EXECUTEmsdb.sysmail_add_principalprofile_sp

    @profile_name = 'プロファイルの名前'

    @ principal_name = 'public または 0'

    @is_default = '既定のプロファイルの状態 '

    ここで、@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 ;