Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да премахнете пощенски акаунт в база данни от профил в SQL Server (T-SQL)

В SQL Server можете да използвате sysmail_delete_profileaccount_sp съхранена процедура за премахване на акаунт в Database Mail от профил.

Можете да премахнете акаунта от конкретен профил или можете да го премахнете от всички профили. Можете също да премахнете всички акаунти от даден профил.

Начинът, по който работи, е, че предоставяте два аргумента; името на акаунта или неговия идентификатор и името на профила или неговия идентификатор. Ако пропуснете аргумента за профила, акаунтът се премахва от всички профили. Ако пропуснете аргумента за акаунта, тогава всички акаунти се премахват от профила.

Премахване на конкретен акаунт от конкретен профил

Ето пример, за да демонстрирате как да премахнете акаунт от един профил.

Първо, нека извикаме sysmail_help_profileaccount_sp за да видя колко асоциации на акаунт/профил имам.

EXEC msdb.dbo.sysmail_help_profileaccount_sp;

Резултат:

+--------------+-------------------+--------------+----------------+-------------------+
| 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                 |
+--------------+-------------------+--------------+----------------+-------------------+

Имам две асоциации. Нека премахнем първия. Това е мястото, където акаунтът, наречен „DB Admin“, принадлежи към профила, наречен „DB Admin Profile“).

Ето как да ги премахнете въз основа на името на акаунта и името на потребителския профил.

EXEC msdb.dbo.sysmail_delete_profileaccount_sp
    @profile_name = 'DB Admin Profile',  
    @account_name = 'DB Admin';

Имената на профилите и акаунтите са sysname със стойност по подразбиране NULL .

Идентификаторите, ако решите да ги използвате вместо това, са sysname със стойност по подразбиране NULL .

Сега нека извикаме sysmail_help_profileaccount_sp отново да видим колко асоциации имаме сега.

EXEC msdb.dbo.sysmail_help_profileaccount_sp;

Резултат:

+--------------+-------------------+--------------+----------------+-------------------+
| profile_id   | profile_name      | account_id   | account_name   | sequence_number   |
|--------------+-------------------+--------------+----------------+-------------------|
| 2            | DB Public Profile | 2            | DB Public      | 1                 |
+--------------+-------------------+--------------+----------------+-------------------+

Както се очакваше, сега имаме само втория.

Премахване на акаунт от ВСИЧКИ профили

Можете да премахнете акаунта от всички профили, като пропуснете данните за профила. С други думи, посочете името или идентификатора на акаунта, но не и профила.

Като това:

EXEC msdb.dbo.sysmail_delete_profileaccount_sp 
    @account_name = 'DB Admin';

Премахване на ВСИЧКИ акаунти от профил

Можете да премахнете всички акаунти от профил, като пропуснете данните за акаунта. С други думи, посочете името или идентификатора на профила, но не и акаунта.

Като това:

EXEC msdb.dbo.sysmail_delete_profileaccount_sp 
    @profile_name = 'DB Admin Profile';

Местоположение на съхранената процедура

sysmail_delete_profileaccount_sp съхранената процедура се намира в msdb база данни и нейният собственик е dbo . Следователно, ще трябва да предоставите три части на име, ако msdb не е текущата база данни.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Какво представлява схемата в SQL Server и как да създадете/препуснете схема в базата данни на SQL Server - SQL Server / TSQL урок, част 27

  2. Как да върнете текущата стойност на версия на реда за база данни на SQL Server (пример за T-SQL)

  3. Изхвърлете всички таблици, съхранени процедури, тригери, ограничения и всички зависимости в един оператор sql

  4. Запетаи в CSV данни

  5. Защо няма прозоречни функции в клаузите where?