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.