次の方法で共有


sysmail_update_account_sp (Transact-SQL)

既存のデータベース メール アカウントの情報を変更します。

トピック リンク アイコンTransact-SQL 構文表記規則

構文

sysmail_update_account_sp [ [ @account_id = ] account_id ] [ , ] [ [ @account_name = ] 'account_name' ] ,
    [ @email_address = ] 'email_address' , 
    [ @display_name = ] 'display_name' , 
    [ @replyto_address = ] 'replyto_address' ,
    [ @description = ] 'description' , 
    [ @mailserver_name = ] 'server_name' , 
    [ @mailserver_type = ] 'server_type' , 
    [ @port = ] port_number , 
    [ @username = ] 'username' ,
    [ @password = ] 'password' ,
    [ @use_default_credentials = ] use_default_credentials ,
    [ @no_credential_change = ] changes to username and password ,
    [ @enable_ssl = ] enable_ssl 

引数

  • [ @account_id = ] account_id
    更新するアカウント ID を指定します。account_id のデータ型は int で、既定値は NULL です。少なくとも account_id または account_name のいずれかを指定する必要があります。両方が指定されると、プロシージャによってアカウントの名前が変更されます。

  • [ @account_name = ] 'account_name'
    更新するアカウントの名前を指定します。account_name のデータ型は sysname で、既定値は NULL です。少なくとも account_id または account_name のいずれかを指定する必要があります。両方が指定されると、プロシージャによってアカウントの名前が変更されます。

  • [ @email_address = ] 'email_address'
    メッセージ送信元の新しい電子メール アドレスを指定します。このアドレスにはインターネット電子メール アドレスを指定する必要があります。アドレスのサーバー名は、データベース メールがこのアカウントからメールを送信する場合に使用するサーバーです。email_address のデータ型は nvarchar(128) で、既定値は NULL です。

  • [ @display_name = ] 'display_name'
    このアカウントから送信する電子メール メッセージの新しい表示名を指定します。display_name のデータ型は nvarchar(128) で、既定値はありません。

  • [ @replyto_address = ] 'replyto_address'
    このアカウントから送信する電子メール メッセージの [返信先] ヘッダーで使用する新しいアドレスを指定します。replyto_address のデータ型は nvarchar(128) で、既定値はありません。

  • [ @description = ] 'description'
    アカウントの新しい説明を指定します。description のデータ型は nvarchar(256) で、既定値は NULL です。

  • [ @mailserver_name = ] 'server_name'
    このアカウントに使用する SMTP メール サーバーの新しい名前を指定します。SQL Server を実行するコンピュータでは、この server_name を解決して IP アドレスを取得できるようにする必要があります。server_name のデータ型は sysname で、既定値はありません。

  • [ @mailserver_type = ] 'server_type'
    メール サーバーの新しい種類を指定します。server_type のデータ型は sysname で、既定値はありません。SQL Server 2005 以降では、値 'SMTP' のみがサポートされています。

  • [ @port = ] port_number
    メール サーバーの新しいポート番号を指定します。port_number のデータ型は int で、既定値はありません。

  • [ @username = ] 'username'
    メール サーバーへのログオンに使用する新しいユーザー名を指定します。User name のデータ型は sysname で、既定値はありません。

  • [ @password = ] 'password'
    メール サーバーへのログオンに使用する新しいパスワードを指定します。password のデータ型は sysname で、既定値はありません。

  • [ @use_default_credentials = ] use_default_credentials
    SQL Server データベース エンジン サービスの資格情報を使用してメールを SMTP サーバーに送信するかどうかを指定します。use_default_credentials のデータ型は bit で、既定値はありません。このパラメータが 1 の場合、データベース メールではデータベース エンジンの資格情報が使用されます。このパラメータが 0 の場合、データベース メールでは、SMTP サーバーでの認証に @username および @password が使用されます。@username および @password が NULL の場合、匿名認証が使用されます。このパラメータを指定する前に、SMTP 管理者に問い合わせてください。

  • [ @no_credential_change = ] changes to username and password
    既存の資格情報 (ユーザー名とパスワード) を変更するかどうかを指定します。このパラメータが 1 の場合、資格情報の変更がないことを示し、@username@password は必要ありません。このパラメータが 0 の場合、資格情報の変更があることを示し、@username@password を指定する必要があります。このパラメータのデータ型は bit で、既定値は 0 です。

  • [ @enable_ssl = ] enable_ssl
    データベース メールで SSL (Secure Sockets Layer) を使用して通信を暗号化するかどうかを指定します。SMTP サーバーで SSL が必要な場合はこのオプションを使用します。enable_ssl のデータ型は bit で、既定値はありません。

リターン コード値

0 (成功) または 1 (失敗)

説明

アカウント名とアカウント ID の両方を指定すると、ストアド プロシージャではアカウント情報の更新だけでなく、アカウント名の変更も行われます。アカウント名の変更は、アカウント名のエラーを修正する場合に利用できます。

@no_credential_change パラメータは、電子メールの送信に基本認証を使用しているアカウントのユーザー名とパスワード以外の変更に使用できます。たとえば、@no_credential_change = 1 を指定すると、ユーザー名とパスワードを指定しなくても SSL を有効にできます。

ストアド プロシージャ sysmail_update_account_sp は、msdb データベースにあり、dbo スキーマが所有しています。現在のデータベースが msdb でない場合、このプロシージャを実行するときには名前に 3 つの要素を指定する必要があります。

権限

固定サーバー ロール sysadmin のメンバシップが必要です。

A. アカウントの情報を変更する

次の例では、msdb データベースのアカウント AdventureWorks Administrator を更新します。アカウントの情報は、指定した値に設定されます。

EXECUTE msdb.dbo.sysmail_update_account_sp
    ,@account_name = 'AdventureWorks Administrator'
    ,@description = 'Mail account for administrative e-mail.'
    ,@email_address = 'dba@Adventure-Works.com'
    ,@display_name = 'AdventureWorks Automated Mailer'
    ,@replyto_address = NULL
    ,@mailserver_name = 'smtp.Adventure-Works.com'
    ,@mailserver_type = 'SMTP'
    ,@port = 25
    ,@username = NULL
    ,@password = NULL
    ,@use_default_credentials = 0
    ,@enable_ssl = 0;

B. アカウントの名前とアカウントの情報を変更する

次の例では、アカウント ID 125 の名前を変更し、アカウント情報を更新します。アカウントの新しい名前は Backup Mail Server です。

EXECUTE msdb.dbo.sysmail_update_account_sp
    ,@account_id = 125
    ,@account_name = 'Backup Mail Server'
    ,@description = 'Mail account for administrative e-mail.'
    ,@email_address = 'dba@Adventure-Works.com'
    ,@display_name = 'AdventureWorks Automated Mailer'
    ,@replyto_address = NULL
    ,@mailserver_name = 'smtp-backup.Adventure-Works.com'
    ,@mailserver_type = 'SMTP'
    ,@port = 25,
    ,@username = NULL
    ,@password = NULL
    ,@use_default_credentials = 0
    ,@enable_ssl = 0;

C. @no\_credential\_change を使用してアカウントの SSL のみを変更する

次の例では、アカウント ID 125 の SSL 設定を変更します。他のアカウント情報はすべてそのまま変更されません。

EXECUTE msdb.dbo.sysmail_update_account_sp
    ,@account_id = 125
    ,@enable_ssl = 1
    ,@no_credential_change = 1;

@no\_credential\_change=1 を指定していない場合、@username と @password の値を指定しないと、これらに NULL 値が代入されます。

変更履歴

変更内容

新しいパラメータ @no_credential_change に関する情報が、「構文」、「引数」、「解説」の各セクションに追加されました。

新しいパラメータ @no_credential_change を使用して SSL 設定を変更する例が追加されました。