sysmail_update_principalprofile_sp (Transact-SQL)
適用対象: SQL Server
プリンシパルとプロファイルの間の関連付けの情報を更新します。
構文
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 つだけ持つことができます。
関連付けのプリンシパル名が public または関連付けのプリンシパル ID が 0
されると、このストアド プロシージャによってパブリック プロファイルが変更されます。 既定のパブリック プロファイルは 1 つしか存在できません。
@is_defaultが1
され、プリンシパルが複数のプロファイルに関連付けられている場合、指定したプロファイルがプリンシパルの既定のプロファイルになります。 以前は既定のプロファイルだったプロファイルは引き続きプリンシパルに関連付けられていますが、既定のプロファイルではなくなりました。
ストアド プロシージャ sysmail_update_principalprofile_sp
は msdb
データベースにあり、 dbo スキーマによって所有されます。 現在のデータベースが msdb
されていない場合は、プロシージャを 3 部構成の名前で実行する必要があります。
アクセス許可
この手順では 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
を、msdb
データベースのプリンシパル ApplicationUser
の既定のプロファイルに設定します。 このプロファイルはプリンシパルに既に関連付けられている必要があります。 以前は既定のプロファイルだったプロファイルは引き続きプリンシパルに関連付けられていますが、既定のプロファイルではなくなりました。
EXEC msdb.dbo.sysmail_update_principalprofile_sp
@principal_name = 'ApplicationUser',
@profile_name = 'AdventureWorks Administrator',
@is_default = '1' ;