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


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;