Поделиться через


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

применимо к:SQL ServerУправляемому экземпляру SQL Azure

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

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

<>

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

Иллюстрация отношений пользователей, профилей и учетных записей в Database Mail.

Учетная запись почтовой службы базы данных

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

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

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

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

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

Сведения об учетной записи хранятся в msdb системной базе данных, включая имя, описание, адрес электронной почты, ответ на электронную почту, сервер электронной почты и сведения о проверке подлинности сервера.

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

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

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

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

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

Профиль может быть общедоступным или частным. По умолчанию профиль является закрытым и предоставляет доступ только членам предопределенной роли сервера sysadmin .

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

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

Номера последовательности профилей

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

Для новых сообщений электронной почты компонент Database Mail использует последнюю учетную запись, с которой было успешно отправлено сообщение, либо учетную запись с наименьшим порядковым номером, если сообщения еще не отправлялись. Если использование этой учетной записи завершилось с ошибкой, компонент Database Mail использует учетную запись со следующим порядковым номером, и так до тех пор, пока сообщение не будет успешно отослано, либо пока не окажется безуспешным использование учетной записи с наибольшим порядковым номером. Если отправка сообщения от имени учетной записи с наибольшим порядковым номером также завершилась ошибкой, то компонент Database Mail приостанавливает попытки отправки сообщения на время, заданное параметром AccountRetryDelay хранимой процедуры sysmail_configure_sp. Затем он возобновляет их отправку, начиная с учетной записи с наименьшим порядковым номером.

Используйте параметр AccountRetryAttempts из sysmail_configure_sp для настройки указанного количества попыток, которое процесс внешней почты предпринимает для отправки сообщения электронной почты с использованием каждой учетной записи в указанном профиле.

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

Задачи настройки компонента 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.