Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Obter uma lista de contas do Database Mail no SQL Server (T-SQL)


No SQL Server, você pode usar o sysmail_help_account_sp procedimento armazenado no msdb database para recuperar uma lista de todas as contas do Database Mail.

Você também pode retornar informações da conta com base no nome ou ID da conta.

Exemplo


Aqui está um exemplo para demonstrar.
EXEC msdb.dbo.sysmail_help_account_sp;

Resultado (usando saída vertical):
account_id              | 1
name                    | DB Admin
description             | Mail account for admin emails.
email_address           | [email protected]
display_name            | DB Automated Mailer
replyto_address         | [email protected]
servertype              | SMTP
servername              | smtp.example.com
port                    | 25
username                | NULL
use_default_credentials | 0
enable_ssl              | 0

Listei os resultados usando saída vertical para que você não precise rolar para os lados para ver todas as colunas.

No meu caso, há apenas uma conta do Database Mail.

Observe que o sysmail_help_account_sp procedimento armazenado está no msdb banco de dados, e é de propriedade do dbo esquema. Portanto, você precisará usar a nomenclatura de três partes (como no meu exemplo) se msdb não é o banco de dados atual.

Devolver apenas uma conta


Embora eu tenha apenas uma conta de e-mail de banco de dados em meu sistema, aqui está um exemplo de como retornar uma única conta.

Conforme mencionado, você pode usar o nome da conta ou seu ID. Aqui está um exemplo de como devolvê-lo pelo ID da conta:
EXEC msdb.dbo.sysmail_help_account_sp
    @account_id = 1;

Você precisa fornecer o ID da conta como int .

E aqui está um exemplo de como devolvê-lo pelo nome:
EXEC msdb.dbo.sysmail_help_account_sp
    @account_name = 'DB Admin';

O nome da conta é sysname .

Conta inválida?


Fornecer um ID de conta que não existe retorna o seguinte erro:
Msg 14606, Level 16, State 1, Procedure msdb.dbo.sysmail_verify_account_sp, Line 33
account id is not valid

Fornecer um nome de conta que não existe retorna o seguinte erro:
Msg 14607, Level 16, State 1, Procedure msdb.dbo.sysmail_verify_account_sp, Line 42
account name is not valid