sysmail_add_principalprofile_sp (Transact-SQL)
適用於:SQL Server Azure SQL 受控執行個體
授與資料庫主體使用 Database Mail 配置文件的許可權 msdb
。 資料庫主體必須對應至 SQL Server 驗證使用者、Windows 使用者或 Windows 群組。
在 Azure SQL 受控執行個體 和 SQL Server 2022 (16.x),資料庫主體也可以對應至 Microsoft Entra 使用者。
語法
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_name。 0
@principal_id ,讓此配置檔成為公用配置檔,授與資料庫中所有主體的存取權。
[ @principal_name = ] 'principal_name'
關聯之 msdb
資料庫中的資料庫使用者或角色名稱。 @principal_name為 sysname 預設值為 NULL
。 必須指定@principal_id或@principal_name。 public
@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_default 是 1
且用戶已經與一或多個配置檔相關聯時,指定的配置檔會成為使用者的預設配置檔。 先前為預設配置檔的配置檔仍與使用者相關聯,但不再是預設配置檔。
當 @is_default 為 0
且沒有任何其他關聯存在時,預存程式會傳回錯誤。
預存程式 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;