Поделиться через


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;