In SQL Server kunt u de sysmail_delete_profileaccount_sp
opgeslagen procedure om een Database Mail-account uit een profiel te verwijderen.
U kunt het account uit een specifiek profiel verwijderen, of u kunt het uit alle verwijderen profielen. Je kunt ook alle accounts van een bepaald profiel verwijderen.
De manier waarop het werkt is, je geeft twee argumenten; de accountnaam of zijn ID, en de profielnaam of zijn ID. Als u het argument voor het profiel weglaat, wordt het account uit alle profielen verwijderd. Als u het argument voor het account weglaat, worden alle accounts uit het profiel verwijderd.
Een specifiek account verwijderen uit een specifiek profiel
Hier is een voorbeeld om te demonstreren hoe u een account uit een enkel profiel kunt verwijderen.
Laten we eerst sysmail_help_profileaccount_sp
. bellen om te zien hoeveel account-/profielkoppelingen ik heb.
EXEC msdb.dbo.sysmail_help_profileaccount_sp;
Resultaat:
+--------------+-------------------+--------------+----------------+-------------------+ | 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 | +--------------+-------------------+--------------+----------------+-------------------+
Ik heb twee verenigingen. Laten we de eerste verwijderen. Dit is waar het account genaamd "DB Admin" hoort bij het profiel genaamd "DB Admin Profile").
Hier leest u hoe u ze kunt verwijderen op basis van de accountnaam en profielnaam.
EXEC msdb.dbo.sysmail_delete_profileaccount_sp
@profile_name = 'DB Admin Profile',
@account_name = 'DB Admin';
De profiel- en accountnamen zijn sysname met een standaard van NULL
.
De ID's, als u ervoor kiest om ze in plaats daarvan te gebruiken, zijn sysname met een standaard van NULL
.
Laten we nu sysmail_help_profileaccount_sp
. bellen nogmaals, om te zien hoeveel verenigingen we nu hebben.
EXEC msdb.dbo.sysmail_help_profileaccount_sp;
Resultaat:
+--------------+-------------------+--------------+----------------+-------------------+ | profile_id | profile_name | account_id | account_name | sequence_number | |--------------+-------------------+--------------+----------------+-------------------| | 2 | DB Public Profile | 2 | DB Public | 1 | +--------------+-------------------+--------------+----------------+-------------------+
Zoals verwacht hebben we nu alleen de tweede.
Een account verwijderen uit ALLE profielen
U kunt het account uit alle profielen verwijderen door de profielgegevens weg te laten. Met andere woorden, geef de accountnaam of ID op, maar niet het profiel.
Zoals dit:
EXEC msdb.dbo.sysmail_delete_profileaccount_sp
@account_name = 'DB Admin';
Alle accounts uit een profiel verwijderen
U kunt alle accounts uit een profiel verwijderen door de accountgegevens weg te laten. Met andere woorden, geef de profielnaam of ID op, maar niet het account.
Zoals dit:
EXEC msdb.dbo.sysmail_delete_profileaccount_sp
@profile_name = 'DB Admin Profile';
Locatie van de opgeslagen procedure
De sysmail_delete_profileaccount_sp
opgeslagen procedure bevindt zich in de msdb database en de eigenaar is dbo . Daarom moet u een driedelige naamgeving opgeven als msdb is niet de huidige database.