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

Accorder à un utilisateur msdb l'accès à un profil de messagerie de base de données dans SQL Server (T-SQL)

Pour envoyer des e-mails à l'aide de la messagerie de base de données dans SQL Server, un utilisateur doit être membre du DatabaseMailUserRole dans le msdb base de données et avoir accès à au moins un profil de messagerie de base de données.

Pour accorder à un utilisateur l'accès à un profil de messagerie de base de données avec T-SQL, utilisez le sysmail_add_principalprofile_sp procédure stockée dans msdb base de données.

Exemple

Voici un exemple pour illustrer.

EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
    @profile_name = 'DB Admin Profile',
    @principal_name = 'Marge',
    @is_default = 1;

Dans ce cas, j'accorde à l'utilisateur "Marge" l'accès au profil "DB Admin Profile".

Cela suppose que le profil et l'utilisateur existent déjà.

Dans ce cas, j'ai également spécifié @is_default = 1 , ce qui en fait le profil par défaut de l'utilisateur.

Spécifiez les identifiants d'utilisateur/de profil

Vous pouvez également spécifier l'ID utilisateur et/ou l'ID de compte au lieu de leurs noms.

Par conséquent, nous pourrions modifier l'exemple précédent pour qu'il ressemble à ceci :

EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
    @profile_id = 1,
    @principal_id = 25,
    @is_default = 1;

Cela suppose évidemment que ce sont les identifiants des comptes en question.

Notez que le nom ou l'ID doit être fourni.

De plus, lorsque vous fournissez les identifiants, ils sont fournis sous la forme int .

Notez que le sysmail_add_principalprofile_sp la procédure stockée est dans le msdb base de données, et elle appartient à dbo schéma. Par conséquent, vous devrez utiliser un nommage en trois parties si vous l'exécutez depuis l'extérieur de msdb base de données.

Profils publics

Vous pouvez également faire d'un profil le profil public par défaut pour les utilisateurs dans msdb base de données.

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

Pour rendre un profil public, spécifiez un @principal_id de 0 ou un @principal_name de public . Un profil public est disponible pour tous les utilisateurs dans le msdb base de données (bien que les utilisateurs doivent également être membres de DatabaseMailUserRole pour exécuter sp_send_dbmail ).

Notez qu'il ne peut y avoir qu'un seul profil public par défaut.

Configuration de la messagerie de base de données

Les étapes ci-dessus supposent que vous avez déjà créé un profil de messagerie de base de données et ajouté au moins un compte de messagerie de base de données à ce profil.

Voir Comment envoyer un e-mail dans SQL Server pour un exemple complet de configuration de la messagerie de base de données, puis d'envoi d'un e-mail.