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
является.
Разрешения
Эта хранимая процедура принадлежит роли db_owner . Вы можете предоставить 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;