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
,則必須使用三部分名稱執行程式。
權限
您可以授與此 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;