sysmail_update_principalprofile_sp (Transact-SQL)

適用対象:SQL Server

プリンシパルとプロファイルの間の関連付けの情報を更新します。

Transact-SQL 構文表記規則

構文

sysmail_update_principalprofile_sp { @principal_id = principal_id | @principal_name = 'principal_name' } ,
    { [ @profile_id = ] profile_id | [ @profile_name = ] 'profile_name' } ,
    [ @is_default = ] 'is_default'
[ ; ]

引数

[ @principal_id = ] principal_id

関連付けを変更するデータベースの msdb データベース ユーザーまたはロールの ID。 principal_idは int で、既定値は NULL. @principal_idまたは@principal_name指定する必要があります。

[ @principal_name = ] 'principal_name'

関連付けを更新するデータベースの msdb データベース ユーザーまたはロールの名前。 principal_nameは sysname で、既定値は NULL. @principal_idまたは@principal_name指定する必要があります。

[ @profile_id = ] profile_id

変更する関連付けのプロファイルの ID。 @profile_idは int で、既定値は NULL. @profile_idまたは@profile_name指定する必要があります。

[ @profile_name = ] 'profile_name'

関連付けを変更するプロファイルの名前を指定します。 @profile_nameは sysname で、既定値は NULL. @profile_idまたは@profile_name指定する必要があります。

[ @is_default = ] is_default

このプロファイルがデータベース ユーザーの既定のプロファイルであるかどうか。 データベース ユーザーは、既定のプロファイルを 1 つだけ持つことができます。 @is_defaultはビットであり、既定値はありません。

リターン コードの値

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

結果セット

ありません。

解説

このストアド プロシージャでは、指定したプロファイルを、データベース ユーザーの既定のプロファイルにするかどうかを変更します。 データベース ユーザーが持つことのできる既定のプライベート プロファイルは 1 つだけです。

関連付けのプリンシパル名がパブリックであるか、関連付けのプリンシパル ID である場合、このストアド プロシージャによって0パブリック プロファイルが変更されます。 既定のパブリック プロファイルは 1 つしか存在できません。

@is_defaultが1指定され、プリンシパルが複数のプロファイルに関連付けられている場合、指定したプロファイルがプリンシパルの既定のプロファイルになります。 以前は既定のプロファイルだったプロファイルは引き続きプリンシパルに関連付けられていますが、既定のプロファイルではなくなりました。

ストアド プロシージャsysmail_update_principalprofile_spはデータベース内msdbにあり、dbo スキーマによって所有されています。 現在のデータベースが実行されていない msdb場合は、プロシージャを 3 部構成の名前で実行する必要があります。

アクセス許可

このストアド プロシージャは、db_owner ロールによって所有されています。 任意のユーザーにアクセス許可を付与 EXECUTE できますが、SQL Server のアップグレード中にこれらのアクセス許可がオーバーライドされる可能性があります。

A. プロファイルをデータベースの既定のパブリック プロファイルに設定する

次の例では、プロファイル General Use Profile をデータベース内のユーザーの既定のパブリック プロファイルに msdb 設定します。

EXEC msdb.dbo.sysmail_update_principalprofile_sp
    @principal_name = 'public',
    @profile_name = 'General Use Profile',
    @is_default = '1';

B. プロファイルをユーザーの既定のプライベート プロファイルに設定する

次の例では、プロファイル AdventureWorks Administrator をデータベース内のプリンシパル ApplicationUser の既定の msdb プロファイルに設定します。 このプロファイルはプリンシパルに既に関連付けられている必要があります。 以前は既定のプロファイルだったプロファイルは引き続きプリンシパルに関連付けられていますが、既定のプロファイルではなくなりました。

EXEC msdb.dbo.sysmail_update_principalprofile_sp
    @principal_name = 'ApplicationUser',
    @profile_name = 'AdventureWorks Administrator',
    @is_default = '1' ;