W SQL Server możesz użyć sysmail_delete_profileaccount_sp
procedura składowana do usuwania konta pocztowego bazy danych z profilu.
Możesz usunąć konto z określonego profilu lub usunąć je ze wszystkich profile. Możesz także usunąć wszystkie konta z danego profilu.
Działa to tak, że podajesz dwa argumenty; nazwę konta lub jego identyfikator oraz nazwę profilu lub jego identyfikator. Jeśli pominiesz argument dotyczący profilu, konto zostanie usunięte ze wszystkich profili. Jeśli pominiesz argument dotyczący konta, wszystkie konta zostaną usunięte z profilu.
Usuń określone konto z określonego profilu
Oto przykład pokazujący, jak usunąć konto z jednego profilu.
Najpierw zadzwońmy do sysmail_help_profileaccount_sp
aby zobaczyć, ile mam powiązań konta/profilu.
EXEC msdb.dbo.sysmail_help_profileaccount_sp;
Wynik:
+--------------+-------------------+--------------+----------------+-------------------+ | 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 | +--------------+-------------------+--------------+----------------+-------------------+
Mam dwa skojarzenia. Usuńmy pierwszy. Tutaj konto o nazwie „DB Admin” należy do profilu o nazwie „Profil administratora DB”).
Oto jak je usunąć na podstawie nazwy konta i nazwy profilu.
EXEC msdb.dbo.sysmail_delete_profileaccount_sp
@profile_name = 'DB Admin Profile',
@account_name = 'DB Admin';
Nazwy profilu i konta to sysname z wartością domyślną NULL
.
Identyfikatory, jeśli zdecydujesz się ich użyć, to sysname z wartością domyślną NULL
.
Teraz zadzwońmy do sysmail_help_profileaccount_sp
jeszcze raz, aby zobaczyć, ile mamy teraz skojarzeń.
EXEC msdb.dbo.sysmail_help_profileaccount_sp;
Wynik:
+--------------+-------------------+--------------+----------------+-------------------+ | profile_id | profile_name | account_id | account_name | sequence_number | |--------------+-------------------+--------------+----------------+-------------------| | 2 | DB Public Profile | 2 | DB Public | 1 | +--------------+-------------------+--------------+----------------+-------------------+
Zgodnie z oczekiwaniami mamy teraz tylko drugi.
Usuń konto ze WSZYSTKICH profili
Możesz usunąć konto ze wszystkich profili, pomijając szczegóły profilu. Innymi słowy, podaj nazwę lub identyfikator konta, ale nie profil.
Tak:
EXEC msdb.dbo.sysmail_delete_profileaccount_sp
@account_name = 'DB Admin';
Usuń WSZYSTKIE konta z profilu
Możesz usunąć wszystkie konta z profilu, pomijając szczegóły konta. Innymi słowy, podaj nazwę profilu lub identyfikator, ale nie konto.
Tak:
EXEC msdb.dbo.sysmail_delete_profileaccount_sp
@profile_name = 'DB Admin Profile';
Lokalizacja procedury składowanej
sysmail_delete_profileaccount_sp
procedura składowana znajduje się w msdb bazą danych, a jej właścicielem jest dbo . Dlatego musisz podać trzyczęściowe nazwy, jeśli msdb nie jest aktualną bazą danych.