sysmail_add_principalprofile_sp (Transact-SQL)

Aplica-se a: SQL ServerAzure SQL Managed Instance

Concede permissão para que um msdb responsável de base de dados utilize um perfil Correio de Base de Dados. O princípio da base de dados deve ser mapeado para um utilizador de autenticação do SQL Server, um utilizador Windows ou um grupo Windows.

No Azure SQL Managed Instance e no SQL Server 2022 (16.x), o principal da base de dados também pode ser mapeado para um utilizador Microsoft Entra.

Transact-SQL convenções de sintaxe

Syntax

dbo.sysmail_add_principalprofile_sp
    { [ @principal_id = ] principal_id
        | [ @principal_name = ] N'principal_name' }
    , { [ @profile_id = ] profile_id
        | [ @profile_name = ] N'profile_name' }
    , [ @is_default = ] is_default
[ ; ]

Arguments

[ @principal_id = ] principal_id

O ID do utilizador da base de dados ou do papel na msdb base de dados da associação. @principal_id é int, com um padrão de NULL. Deve ser especificado @principal_id ou @principal_name . Um @principal_id torna 0 este perfil um perfil público, concedendo acesso a todos os principais elementos da base de dados.

[ @principal_name = ] N'principal_name'

O nome do utilizador da base de dados ou o papel na msdb base de dados da associação. @principal_name é sysname, com um padrão de NULL. Deve ser especificado @principal_id ou @principal_name . Uma @principal_name torna public este perfil um perfil público, concedendo acesso a todos os principais da base de dados.

[ @profile_id = ] profile_id

O ID do perfil da associação. @profile_id é int, com um padrão de NULL. Deve ser especificado @profile_id ou @profile_name .

[ @profile_name = ] N'profile_name'

O nome do perfil da associação. @profile_name é sysname, sem padrão. Deve ser especificado @profile_id ou @profile_name .

[ @is_default = ] is_default

Especifica se este perfil é o perfil padrão para o principal. Um principal deve ter exatamente um perfil predefinido. @is_defaulté mordido, sem padrão.

Valores de código de retorno

0 (sucesso) ou 1 (fracasso).

Remarks

Para tornar um perfil público, especifique um @principal_id0 ou um @principal_name de public. Um perfil público está disponível para todos os utilizadores na msdb base de dados, embora os utilizadores também devam ser membros do DatabaseMailUserRole para executar sp_send_dbmail.

Um utilizador de base de dados só pode ter um perfil predefinido. Quando @is_default está 1 e o utilizador já está associado a um ou mais perfis, o perfil especificado torna-se o perfil padrão do utilizador. O perfil que anteriormente era o perfil padrão continua associado ao utilizador, mas já não é o perfil padrão.

Quando @is_default é 0 e não existe outra associação, o procedimento armazenado devolve um erro.

O procedimento sysmail_add_principalprofile_sp armazenado está na msdb base de dados e pertence ao dbo esquema. O procedimento deve ser executado com um nome de três partes se a base de dados atual não msdbfor .

Permissões

Pode conceder EXECUTE permissões neste procedimento, mas essas permissões podem ser anuladas durante uma atualização do SQL Server.

Examples

A. Crie uma associação e defina o perfil padrão

O exemplo seguinte cria uma associação entre o perfil nomeado AdventureWorks Administrator Profile e o msdb utilizador ApplicationUserda base de dados . O perfil é o perfil padrão do utilizador.

EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
    @principal_name = 'ApplicationUser',
    @profile_name = 'AdventureWorks Administrator Profile',
    @is_default = 1;

B. Faça de um perfil o perfil público predefinido

O exemplo seguinte torna o perfil AdventureWorks Public Profile o perfil público predefinido para os utilizadores na msdb base de dados.

EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
    @principal_name = 'public',
    @profile_name = 'AdventureWorks Public Profile',
    @is_default = 1;