Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak usunąć konto pocztowe bazy danych z profilu w programie SQL Server (T-SQL)

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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zapytanie SQL, aby znaleźć N-tą najwyższą pensję z tabeli wynagrodzeń

  2. Znajdź jednostki odniesienia w SQL Server:sys.dm_sql_referencing_entities()

  3. Sposoby śledzenia usuniętej bazy danych w SQL Server

  4. Jak naprawić błąd „nazwa profilu jest nieprawidłowa” podczas aktualizowania profilu poczty bazy danych w programie SQL Server (T-SQL)

  5. Pogrupuj sql według versus different