Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Trouver les associations entre les comptes de messagerie de base de données et les principaux de base de données dans SQL Server (T-SQL)

Dans SQL Server, vous pouvez utiliser le sysmail_help_principalprofile_sp procédure stockée sur msdb base de données pour récupérer une liste de toutes les associations entre les comptes de messagerie de base de données et les principaux de base de données.

Vous pouvez également renvoyer les informations de compte en fonction du nom/ID principal ou du nom/ID profil.

Renvoyer toutes les associations

Pour renvoyer toutes les associations, exécutez simplement la procédure stockée sans aucun paramètre.

EXEC msdb.dbo.sysmail_help_principalprofile_sp;

Résultat (en utilisant la sortie verticale) :

principal_id   | 25
principal_name | Marge
profile_id     | 1
profile_name   | DB Admin Profile
is_default     | 1

J'ai répertorié les résultats en utilisant la sortie verticale afin que vous n'ayez pas à faire défiler latéralement pour voir toutes les colonnes.

Dans mon cas, il n'y a qu'une seule association.

Notez que le sysmail_help_principalprofile_sp la procédure stockée est dans le msdb base de données et appartient à dbo schéma. Par conséquent, vous devrez utiliser un nom en trois parties si msdb n'est pas la base de données actuelle.

Basé sur le nom/ID principal

Vous pouvez le réduire à un seul principal en transmettant le nom ou l'ID du principal en tant que paramètre.

Le nom principal est le nom de l'utilisateur ou du rôle de la base de données dans msdb base de données.

Voici comment transmettre le nom principal :

EXEC msdb.dbo.sysmail_help_principalprofile_sp
    @principal_name = 'Marge';

Et voici comment transmettre l'ID principal :

EXEC msdb.dbo.sysmail_help_principalprofile_sp
    @principal_id = 25;

Notez que @principal_id est fourni sous la forme d'un int .

Basé sur le nom/l'ID du profil

Alternativement, vous pouvez le réduire à un seul profil en passant le nom ou l'ID du profil en tant que paramètre.

Voici comment transmettre le nom du profil :

EXEC msdb.dbo.sysmail_help_principalprofile_sp
    @profile_name = 'DB Admin Profile';

Et voici comment transmettre l'ID de profil :

EXEC msdb.dbo.sysmail_help_principalprofile_sp
    @profile_id = 1;

Notez que @profile_id est fourni sous la forme d'un int .