sysmail_add_principalprofile_sp (Transact-SQL)
Область применения: SQL Server Управляемый экземпляр SQL Azure
Предоставляет субъекту msdb
базы данных разрешение на использование профиля Database Mail. Субъект базы данных должен сопоставляться с пользователем проверки подлинности SQL Server, пользователем Windows или группой Windows.
В Управляемый экземпляр SQL Azure и 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_name. @principal_id 0
делает этот профиль общедоступным, предоставляя доступ ко всем субъектам в базе данных.
[ @principal_name = ] 'principal_name'
Имя пользователя или роли базы данных в msdb
базе данных для сопоставления. @principal_name — sysname с значением по умолчаниюNULL
. Необходимо указать либо @principal_id, либо @principal_name. @principal_name public
делает этот профиль общедоступным, предоставляя доступ ко всем субъектам в базе данных.
[ @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 бит, без значения по умолчанию.
Значения кода возврата
0
(успешно) или 1
(сбой).
Замечания
Чтобы сделать профиль общедоступным, укажите @principal_id 0
или @principal_name public
. Общедоступный профиль доступен для всех пользователей в msdb
базе данных, хотя пользователи также должны быть членом DatabaseMailUserRole для выполнения sp_send_dbmail
.
Пользователь базы данных может иметь только один профиль по умолчанию. Если @is_default и 1
пользователь уже связан с одним или несколькими профилями, указанный профиль становится профилем по умолчанию для пользователя. Профиль, который ранее был профилем по умолчанию, остается ассоциированным с пользователем, но уже не является профилем по умолчанию.
Если @is_default и 0
нет другой связи, хранимая процедура возвращает ошибку.
Хранимая процедура sysmail_add_principalprofile_sp
находится в msdb
базе данных и принадлежит схеме dbo
. Процедура должна выполняться с трехкомпонентным именем, если текущая база данных не msdb
является.
Разрешения
Вы можете предоставить EXECUTE
разрешения для этой процедуры, но эти разрешения могут быть переопределены во время обновления SQL Server.
Примеры
А. Создание связи и настройка профиля по умолчанию
В следующем примере создается связь между профилем с именем пользователя 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;