sql >> Base de Datos >  >> RDS >> Sqlserver

Obtenga una lista de cuentas de correo de base de datos en SQL Server (T-SQL)

En SQL Server, puede usar el sysmail_help_account_sp procedimiento almacenado en msdb base de datos para recuperar una lista de todas las cuentas de correo electrónico de la base de datos.

También puede devolver información de la cuenta según su nombre de cuenta o ID.

Ejemplo

Aquí hay un ejemplo para demostrarlo.

EXEC msdb.dbo.sysmail_help_account_sp;

Resultado (usando salida 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

He enumerado los resultados utilizando la salida vertical para que no tenga que desplazarse hacia los lados para ver todas las columnas.

En mi caso, solo hay una cuenta de correo de base de datos.

Tenga en cuenta que sysmail_help_account_sp el procedimiento almacenado está en msdb base de datos, y es propiedad de dbo esquema. Por lo tanto, deberá usar el nombre de tres partes (como en mi ejemplo) si msdb no es la base de datos actual.

Devolver solo una cuenta

Aunque solo tengo una cuenta de correo de base de datos en mi sistema, aquí hay un ejemplo de cómo devolver una sola cuenta.

Como se mencionó, puede usar el nombre de la cuenta o su ID. Este es un ejemplo de devolución por ID de cuenta:

EXEC msdb.dbo.sysmail_help_account_sp
    @account_id = 1;

Debe proporcionar el ID de la cuenta como un int .

Y aquí hay un ejemplo de devolverlo por nombre:

EXEC msdb.dbo.sysmail_help_account_sp
    @account_name = 'DB Admin';

El nombre de la cuenta es sysname .

¿La cuenta no es válida?

Proporcionar un ID de cuenta que no existe devuelve el siguiente error:

Msg 14606, Level 16, State 1, Procedure msdb.dbo.sysmail_verify_account_sp, Line 33
account id is not valid

Proporcionar un nombre de cuenta que no existe devuelve el siguiente error:

Msg 14607, Level 16, State 1, Procedure msdb.dbo.sysmail_verify_account_sp, Line 42
account name is not valid