Объекты конфигурации компонента Database Mail

Database Mail имеет два объекта конфигурации: объекты конфигурации базы данных предоставляют способ настройки параметров, которые следует использовать при отправке сообщения электронной почты из приложения базы данных или агента SQL Server.

  • Учетные записи компонента Database Mail

  • Профили компонента Database Mail

Связь объекта конфигурации Database Mail

На рисунке показаны два профиля, три учетные записи и три пользователя. Пользователь 1 имеет доступ к профилю 1, который использует учетные записи 1 и 2. Пользователь 3 имеет доступ к Profile 2, который использует учетную запись 2 и учетную запись 3. Пользователь 2 имеет доступ как к профилю 1, так и к профилю 2.

Связь пользователей, профилей и учетных записей пользователей,

Учетная запись компонента Database Mail

Учетная запись Database Mail содержит сведения, которые Microsoft SQL Server использует для отправки сообщений электронной почты на SMTP-сервер. Каждая учетная запись содержит сведения для одного сервера электронной почты.

Компонент Database Mail поддерживает три метода проверки подлинности для взаимодействия с SMTP-сервером:

  • Проверка подлинности Windows: Database Mail использует учетные данные учетной записи службы Windows ядра СУБД SQL Server для проверки подлинности на SMTP-сервере.

  • Обычная проверка подлинности: Database Mail использует имя пользователя и пароль, указанные для проверки подлинности на SMTP-сервере.

  • Анонимная проверка подлинности: SMTP-сервер не требует проверки подлинности. Database Mail не будет использовать учетные данные для проверки подлинности на SMTP-сервере.

Сведения об учетной записи хранятся в базе данных msdb . Каждая учетная запись состоит из следующих сведений:

  • Имя учетной записи.

  • Описание учетной записи.

  • Адрес электронной почты учетной записи.

  • Отображаемое имя учетной записи.

  • Адрес электронной почты, используемый в качестве ответа на сведения для учетной записи.

  • Имя почтового сервера.

  • Тип почтового сервера. Для Microsoft SQL Server это всегда простой протокол передачи почты (SMTP).

  • Номер порта почтового сервера.

  • Битовый столбец, указывающий, выполняется ли подключение к почтовому серверу SMTP с помощью протокола SSL.

  • Битовый столбец, указывающий, выполняется ли подключение к SMTP-серверу с помощью учетных данных, настроенных для ядра СУБД SQL Server.

  • Имя пользователя, используемое для проверки подлинности на почтовом сервере, если для сервера электронной почты требуется проверка подлинности.

  • Пароль, используемый для проверки подлинности на почтовом сервере, если для сервера электронной почты требуется проверка подлинности.

Мастер настройки компонента Database Mail предоставляет удобный способ создания учетных записей и управления ими. Вы также можете использовать хранимые процедуры конфигурации в msdb для создания учетных записей и управления ими.

Профиль компонента Database Mail

Профиль Database Mail — это упорядоченная коллекция связанных учетных записей Database Mail. Приложения, которые отправляют электронную почту с помощью системы Database Mail, указывают профили вместо того, чтобы использовать учетные записи напрямую. Улучшение гибкости и надежности достигается за счет разделения сведений об отдельных серверах электронной почты от объектов, которые использует приложение: профили обеспечивают автоматическое переключение в случае отказа сервера, так что, если один почтовый сервер не отвечает, Database Mail может автоматически отправлять почту на другой сервер. Администраторы базы данных могут добавлять, удалять или перенастраивать учетные записи без необходимости вносить изменения в код приложения или действия задания.

Профили также помогают администраторам баз данных управлять доступом к электронной почте. Членство в DatabaseMailUserRole требуется для отправки компонента Database Mail. Профили обеспечивают дополнительную гибкость для администраторов для управления тем, кто отправляет почту и какие учетные записи используются.

Профиль может быть общедоступным или частным.

Общедоступные профили доступны для всех членов роли базы данных DatabaseMailUserRole в базе данных msdb . Они позволяют всем членам роли DatabaseMailUserRole отправлять электронную почту с помощью профиля.

Частные профили определяются для субъектов безопасности в базе данных msdb . Они позволяют отправлять сообщения электронной почты только указанным пользователям базы данных, ролям и членам предопределенных ролей сервера sysadmin . По умолчанию профиль является частным и разрешает доступ только к членам предопределенных ролей сервера sysadmin . Чтобы использовать частный профиль, sysadmin должен предоставить пользователям разрешение на использование профиля. Кроме того, разрешение EXECUTE для хранимой процедуры sp_send_dbmail предоставляется только членам DatabaseMailUserRole. Системный администратор должен добавить пользователя в роль базы данных DatabaseMailUserRole , чтобы пользователь отправлял сообщения электронной почты.

Профили повышают надежность в случаях, когда почтовый сервер становится недоступным или не может обрабатывать сообщения. Каждая учетная запись в профиле имеет порядковый номер. Порядковый номер определяет порядок, в соответствии с которым компонент Database Mail использует учетные записи в профиле. Для нового сообщения электронной почты Database Mail использует последнюю учетную запись, которая успешно отправила сообщение, или учетную запись с наименьшим порядковым номером, если сообщение еще не отправлено. Если эта учетная запись завершается ошибкой, Database Mail использует учетную запись с следующим по величине порядковым номером и так далее, до тех пор, пока Database Mail не отправит сообщение успешно или пока не произойдет ошибка в учетной записи с самым высоким порядковым номером. Если учетная запись с самым высоким порядковым номером завершается ошибкой, компонент Database Mail приостанавливает попытку отправить почту в течение определенного времени, настроенного в параметре AccountRetryDelaysysmail_configure_sp, а затем запускает процесс попытки отправить почту еще раз, начиная с наименьшего номера последовательности. Используйте параметр AccountRetryAttemptssysmail_configure_sp, чтобы настроить количество попыток внешнего процесса отправки сообщения электронной почты с помощью каждой учетной записи в указанном профиле.

Если несколько учетных записей существуют с одинаковым порядковым номером, database Mail использует только одну из этих учетных записей для заданного сообщения электронной почты. В этом случае Database Mail не гарантирует, какая из учетных записей используется для данного номера последовательности или что одна и та же учетная запись используется от сообщения к сообщению.

Задачи настройки компонента Database Mail

В следующей таблице описаны задачи настройки компонента Database Mail.

Задача конфигурации Ссылка на раздел
Описание того, как создать учетные записи для Database Mail Создать учетную запись для Database Mail
Описание того, как создать профили почты базы данных Создание профиля почты базы данных
Описание настройки почты базы данных Настройка Database Mail
Описание создания скрипта конфигурации Database Mail с помощью шаблонов

Дополнительные задачи конфигурации базы данных (системные хранимые процедуры)

Хранимые процедуры конфигурации Database Mail находятся в базе данных msdb .

В следующих таблицах перечислены хранимые процедуры, используемые для настройки и управления компонентом Database Mail.

Параметры компонента Database Mail

Имя Описание
sysmail_configure_sp (Transact-SQL) Изменяет настройки конфигурации Database Mail.
sysmail_help_configure_sp (Transact-SQL) Отображает параметры конфигурации для компонента Database Mail.

Учетные записи и профили

Имя Описание
sysmail_add_profileaccount_sp (Transact-SQL) Добавляет учетную запись почты в профиль Database Mail.
sysmail_delete_account_sp (Transact-SQL) Удаляет учетную запись Database Mail.
sysmail_delete_profile_sp (Transact-SQL) Удаляет профиль Database Mail.
sysmail_delete_profileaccount_sp (Transact-SQL) Удаляет учетную запись из профиля Database Mail.
sysmail_help_account_sp (Transact-SQL) Выводит сведения о учетных записях Database Mail.
sysmail_help_profile_sp (Transact-SQL) Выводит сведения о одном или нескольких профилях Database Mail.
sysmail_help_profileaccount_sp (Transact-SQL) Выводит список учетных записей, связанных с одним или несколькими профилями Database Mail.
sysmail_update_account_sp (Transact-SQL) Обновляет сведения в существующей учетной записи Database Mail.
sysmail_update_profile_sp (Transact-SQL) Изменяет описание или имя профиля Database Mail.
sysmail_update_profileaccount_sp (Transact-SQL) Обновляет порядковый номер учетной записи в профиле Database Mail.

Безопасность

Имя Описание
sysmail_add_principalprofile_sp (Transact-SQL) Предоставляет субъекту базы данных разрешение на использование профиля Database Mail.
sysmail_delete_principalprofile_sp (Transact-SQL) Удаляет разрешение пользователя базы данных на использование общедоступного или закрытого профиля Database Mail.
sysmail_help_principalprofile_sp (Transact-SQL) Выводит сведения о профиле Database Mail для заданного пользователя базы данных.
sysmail_update_principalprofile_sp (Transact-SQL) Обновляет сведения о разрешениях для данного пользователя базы данных.

Состояние системы

Имя Описание
sysmail_start_sp (Transact-SQL) Запускает внешнюю программу Database Mail и связанную очередь SQL Service Broker.
sysmail_stop_sp (Transact-SQL) Останавливает внешнюю программу Database Mail и связанную очередь SQL Service Broker.
sysmail_help_status_sp (Transact-SQL) Указывает, запущен ли Database Mail.

Дополнительные ссылки