sql >> Database >  >> RDS >> Sqlserver

Een database-e-mailaccount verwijderen uit een profiel in SQL Server (T-SQL)

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.


  1. Getallen opmaken met komma's in SQL Server

  2. Een beperking in SQL Server (T-SQL) laten vallen

  3. Hoe te ontsnappen aan de apostrof (') in MySql?

  4. Een back-up maken van of een nieuwe tabel maken van een bestaande SQL Server-tabel in SQL Server - SQL Server / TSQL-zelfstudie, deel 105