sysmail_add_principalprofile_sp (Transact-SQL)

適用於:SQL ServerAzure SQL 受控執行個體

授與資料庫主體使用 Database Mail 配置文件的許可權 msdb 。 資料庫主體必須對應至 SQL Server 驗證使用者、Windows 使用者或 Windows 群組。

在 Azure SQL 受控執行個體 和 SQL Server 2022 (16.x),資料庫主體也可以對應至 Microsoft Entra 使用者。

Transact-SQL 語法慣例

語法

sysmail_add_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 的標識碼。 @principal_id為 int,預設值為 NULL必須指定@principal_id@principal_name0@principal_id ,讓此配置檔成為公用配置檔,授與資料庫中所有主體的存取權。

[ @principal_name = ] 'principal_name'

關聯之 msdb 資料庫中的資料庫使用者或角色名稱。 @principal_name為 sysname 預設值為 NULL必須指定@principal_id@principal_namepublic @principal_name 讓此配置檔成為公用配置檔,授與資料庫中所有主體的存取權。

[ @profile_id = ] profile_id

關聯配置文件的識別碼。 @profile_id為 int,預設值為 NULL必須指定@profile_id@profile_name

[ @profile_name = ] 'profile_name'

關聯之配置檔的名稱。 @profile_name為 sysname,沒有預設值。 必須指定@profile_id@profile_name

[ @is_default = ] is_default

指定此設定檔是否為主體的預設配置檔。 主體必須只有一個預設配置檔。 @is_default為 bit,沒有預設值。

傳回碼值

0 (成功)或 1 (失敗)。

備註

若要將配置檔設為公用,請指定 的 0 @principal_id的@principal_namepublic。 公用配置檔可供資料庫中的所有使用者msdb使用,不過使用者也必須是 DatabaseMailUserRole 的成員,才能執行 sp_send_dbmail

資料庫使用者只能有一個預設配置檔。 當 @is_default1 且用戶已經與一或多個配置檔相關聯時,指定的配置檔會成為使用者的預設配置檔。 先前為預設配置檔的配置檔仍與使用者相關聯,但不再是預設配置檔。

@is_default0 且沒有任何其他關聯存在時,預存程式會傳回錯誤。

預存程式 sysmail_add_principalprofile_sp 位於 msdb 資料庫中,而且是由 dbo 架構所擁有。 如果目前的資料庫不是 msdb,則必須使用三部分名稱執行程式。

權限

此預存程式是由 db_owner 角色所擁有。 您可以授與 EXECUTE 任何用戶的許可權,但這些許可權可能會在 SQL Server 升級期間覆寫。

範例

A. 建立關聯並設定預設配置檔

下列範例會在名為 AdventureWorks Administrator Profile 的配置檔與 msdb 資料庫用戶 ApplicationUser之間建立關聯。 配置檔是使用者的預設配置檔。

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

B. 將設定檔設為預設公用配置檔

下列範例會讓配置檔 AdventureWorks Public Profile 成為資料庫中用戶 msdb 的預設公用配置檔。

EXEC msdb.dbo.sysmail_add_principalprofile_sp
    @principal_name = 'public',
    @profile_name = 'AdventureWorks Public Profile',
    @is_default = 1;