sysmail_update_principalprofile_sp(Transact-SQL)

適用対象:SQL Server

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

Transact-SQL 構文表記規則

構文

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

引数

[ @principal_id = ] principal_id

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

[ @principal_name = ] N'principal_name

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

[ @profile_id = ] profile_id

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

[ @profile_name = ] N'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 部構成の名前で実行する必要があります。

アクセス許可

この手順では EXECUTE アクセス許可を付与できますが、これらのアクセス許可は SQL Server のアップグレード中にオーバーライドされる可能性があります。

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

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

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

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

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

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