次の方法で共有


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_idint で、既定値は NULL です。 @principal_idまたは@principal_nameを指定する必要があります。

[ @principal_name = ] 'principal_name'

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

[ @profile_id = ] profile_id

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

[ @profile_name = ] 'profile_name'

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

[ @is_default = ] is_default

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

リターン コードの値

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

結果セット

ありません。

解説

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

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

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

ストアド プロシージャ sysmail_update_principalprofile_spmsdb データベースにあり、 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を、msdb データベースのプリンシパル ApplicationUserの既定のプロファイルに設定します。 このプロファイルはプリンシパルに既に関連付けられている必要があります。 以前は既定のプロファイルだったプロファイルは引き続きプリンシパルに関連付けられていますが、既定のプロファイルではなくなりました。

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