Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So entfernen Sie ein Datenbank-E-Mail-Konto aus einem Profil in SQL Server (T-SQL)

In SQL Server können Sie den sysmail_delete_profileaccount_sp verwenden gespeicherte Prozedur zum Entfernen eines Datenbank-E-Mail-Kontos aus einem Profil.

Sie können das Konto aus einem bestimmten Profil oder aus allen entfernen Profile. Sie können auch alle Konten aus einem bestimmten Profil entfernen.

So funktioniert es, Sie geben zwei Argumente an; der Kontoname oder seine ID und der Profilname oder seine ID. Wenn Sie das Argument für das Profil weglassen, wird das Konto aus allen Profilen entfernt. Wenn Sie das Argument für das Konto weglassen, werden alle Konten aus dem Profil entfernt.

Ein bestimmtes Konto aus einem bestimmten Profil entfernen

Hier ist ein Beispiel, das zeigt, wie man ein Konto aus einem einzelnen Profil entfernt.

Rufen wir zuerst sysmail_help_profileaccount_sp auf um zu sehen, wie viele Konto-/Profilverknüpfungen ich habe.

EXEC msdb.dbo.sysmail_help_profileaccount_sp;

Ergebnis:

+--------------+-------------------+--------------+----------------+-------------------+
| profile_id   | profile_name      | account_id   | account_name   | sequence_number   |
|--------------+-------------------+--------------+----------------+-------------------|
| 3            | DB Admin Profile  | 3            | DB Admin       | 1                 |
| 2            | DB Public Profile | 2            | DB Public      | 1                 |
+--------------+-------------------+--------------+----------------+-------------------+

Ich habe zwei Assoziationen. Lassen Sie uns die erste entfernen. Hier gehört das Konto „DB Admin“ zum Profil „DB Admin Profile“).

So entfernen Sie sie anhand des Konto- und Profilnamens.

EXEC msdb.dbo.sysmail_delete_profileaccount_sp
    @profile_name = 'DB Admin Profile',  
    @account_name = 'DB Admin';

Die Profil- und Kontonamen sind sysname mit einem Standardwert von NULL .

Die IDs lauten sysname, falls Sie sie stattdessen verwenden möchten mit einem Standardwert von NULL .

Rufen wir nun sysmail_help_profileaccount_sp auf noch einmal, um zu sehen, wie viele Assoziationen wir jetzt haben.

EXEC msdb.dbo.sysmail_help_profileaccount_sp;

Ergebnis:

+--------------+-------------------+--------------+----------------+-------------------+
| profile_id   | profile_name      | account_id   | account_name   | sequence_number   |
|--------------+-------------------+--------------+----------------+-------------------|
| 2            | DB Public Profile | 2            | DB Public      | 1                 |
+--------------+-------------------+--------------+----------------+-------------------+

Wie erwartet haben wir jetzt nur noch die zweite.

Ein Konto aus ALLEN Profilen entfernen

Sie können das Konto aus allen Profilen entfernen, indem Sie die Profildetails weglassen. Geben Sie mit anderen Worten den Kontonamen oder die ID an, aber nicht das Profil.

So:

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

ALLE Konten aus einem Profil entfernen

Sie können alle Konten aus einem Profil entfernen, indem Sie die Kontodetails weglassen. Geben Sie also den Profilnamen oder die ID an, aber nicht das Konto.

So:

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

Speicherort der gespeicherten Prozedur

Die sysmail_delete_profileaccount_sp gespeicherte Prozedur befindet sich in der msdb Datenbank und ihr Besitzer ist dbo . Daher müssen Sie eine dreiteilige Benennung angeben, wenn msdb ist nicht die aktuelle Datenbank.