В 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 не е текущата база данни.