Слайд 2Назначение
Автоматическая отправка отчетов
Состояние базы данных
Аналитические выборки
Оповещение о наступлении какого-либо события
Откладывание определенного действия
![Назначение Автоматическая отправка отчетов Состояние базы данных Аналитические выборки Оповещение о наступлении](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/448839/slide-1.jpg)
или перенос его на другой уровень обработки
Слайд 3Обзор
Замена SQL Mail
Независимость от Outlook
Ассинхронность
Безопастность
Запрещенные расширения файлов
Проверка размера файлов
Расширяемость
Множество учетных записей
Множество mail
![Обзор Замена SQL Mail Независимость от Outlook Ассинхронность Безопастность Запрещенные расширения файлов](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/448839/slide-2.jpg)
host databases
Сопровождение
Аудит
Сохранение всех отправленных сообщений
Мониторинг
Удобный wizard
Слайд 4Архитектура
Компоненты
База данных SQLiMail
База данных msdb
Service Broker
SQLiMail90.exe
Последовательность
Пользователь выполняет sendimail_sp
Формируется xml-документ, описывающий сообщение, копия
![Архитектура Компоненты База данных SQLiMail База данных msdb Service Broker SQLiMail90.exe Последовательность](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/448839/slide-3.jpg)
документа сохраняется в sysmail_mailitems
Документ помещается в очередь
Активируется процесс SQLiMail.exe
Процесс SQLiMail.exe
читает документ из очереди
собирает информацию о пользователе из msdb
Формирует SMTP пакет и отправляет его на SMTP сервер
Процесс SQLiMail.exe получает ответ от SMTP сервера и сохраняет его в таблицу sysmail_log
Слайд 5Функциональность
С помощью SQLiMail можно отправлять письма со следующими параметрами
Получатели
Получатели копии
Скрытые получатели копии
Важность
![Функциональность С помощью SQLiMail можно отправлять письма со следующими параметрами Получатели Получатели](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/448839/slide-4.jpg)
письма
Тело сообщения может быть двух типов: text и html
В письмо можно вкладывать файлы и результаты исполнения определенных T-SQL команд
При невозможности доставки сообщения одному SMTP серверу, SQLiMail попытается отправить сообщение другому SMTP серверу (можно сконфигурировать несколько серверов) – account failover
Слайд 6Конфигурация (demo)
Создать mail базу
Разрешить Service Broker
alter database [maildb] set enable_broker
Прогнать скрипт
Создать учетную
![Конфигурация (demo) Создать mail базу Разрешить Service Broker alter database [maildb] set](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/448839/slide-5.jpg)
запись (account)
sysmail_add_account_sp
Создать профиль (profile)
sysmail_add_profile_sp
Связать профиль с учетной записью (отношение между профилем и учетной записью многие ко многим)
sysmail_add_profileaccount_sp
При добавлении учетной запись к профилю можно задать приоритет, который будет использоваться при нескольких учетных записях
Отправка почты с помощью sendimail_sp. Профиль можно не указавыть, если есть скрытый профиль по умолчанию или публичный профиль по умолчанию.
Информация об учетных записях и соответствующие хранимые процедуры находятся в msdb.
Слайд 7Конфигурация с помощью wizard-а
![Конфигурация с помощью wizard-а](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/448839/slide-6.jpg)
Слайд 8Безопасность
Системные параметры
sysmail_help_configure_sp – просмотр параметров
sysmail_configure_sp – изменение параметров
Настраиваются такие параметры как, количество
![Безопасность Системные параметры sysmail_help_configure_sp – просмотр параметров sysmail_configure_sp – изменение параметров Настраиваются](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/448839/slide-7.jpg)
попыток отправки сообщения SMTP серверу, максимальный размер вложения, запрещеные расширения и проч.
Информация сохраняется в msdb
Пример: exec msdb.dbo.sysmail_configure_sp 'MaxFileSize', ‘1048576‘ --1Mb
Слайд 9Безопасность (продолжение)
По умолчанию любой пользователь имеет право вызывать sendimail_sp
Публичные профили никак не
![Безопасность (продолжение) По умолчанию любой пользователь имеет право вызывать sendimail_sp Публичные профили](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/448839/slide-8.jpg)
связаны с mail базой и пользователями
Для всех mail баз можно задать один публичный профиль по умолчанию
Закрытый профиль имеют право использовать только определенные пользователи
У одного пользователя может быть несколько закрытых профилей и только один по умолчанию
Просмотр данных - sysmail_help_principalprofile_sp
Пример: exec msdb.dbo.sysmail_add_principalprofile_sp @principal_id = 0, --public
@database_id = 9, @profile_name = ''
Слайд 10SQL Agent и SQLiMail
Необходимо поставить SQLiMail на базу msdb
Задать для пользователя, под
![SQL Agent и SQLiMail Необходимо поставить SQLiMail на базу msdb Задать для](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/448839/slide-9.jpg)
которым исполняется сервис SQL Agent закрытый профиль по умолчанию
На вкладке Alert System свойств SQL Agent выбрать Mail System – SQLiMail и профиль