Слайд 2Назначение
Автоматическая отправка отчетов
Состояние базы данных
Аналитические выборки
Оповещение о наступлении какого-либо события
Откладывание определенного действия
или перенос его на другой уровень обработки
Слайд 3Обзор
Замена SQL Mail
Независимость от Outlook
Ассинхронность
Безопастность
Запрещенные расширения файлов
Проверка размера файлов
Расширяемость
Множество учетных записей
Множество mail
host databases
Сопровождение
Аудит
Сохранение всех отправленных сообщений
Мониторинг
Удобный wizard
Слайд 4Архитектура
Компоненты
База данных SQLiMail
База данных msdb
Service Broker
SQLiMail90.exe
Последовательность
Пользователь выполняет sendimail_sp
Формируется xml-документ, описывающий сообщение, копия
документа сохраняется в sysmail_mailitems
Документ помещается в очередь
Активируется процесс SQLiMail.exe
Процесс SQLiMail.exe
читает документ из очереди
собирает информацию о пользователе из msdb
Формирует SMTP пакет и отправляет его на SMTP сервер
Процесс SQLiMail.exe получает ответ от SMTP сервера и сохраняет его в таблицу sysmail_log
Слайд 5Функциональность
С помощью SQLiMail можно отправлять письма со следующими параметрами
Получатели
Получатели копии
Скрытые получатели копии
Важность
письма
Тело сообщения может быть двух типов: text и html
В письмо можно вкладывать файлы и результаты исполнения определенных T-SQL команд
При невозможности доставки сообщения одному SMTP серверу, SQLiMail попытается отправить сообщение другому SMTP серверу (можно сконфигурировать несколько серверов) – account failover
Слайд 6Конфигурация (demo)
Создать mail базу
Разрешить Service Broker
alter database [maildb] set enable_broker
Прогнать скрипт
Создать учетную
запись (account)
sysmail_add_account_sp
Создать профиль (profile)
sysmail_add_profile_sp
Связать профиль с учетной записью (отношение между профилем и учетной записью многие ко многим)
sysmail_add_profileaccount_sp
При добавлении учетной запись к профилю можно задать приоритет, который будет использоваться при нескольких учетных записях
Отправка почты с помощью sendimail_sp. Профиль можно не указавыть, если есть скрытый профиль по умолчанию или публичный профиль по умолчанию.
Информация об учетных записях и соответствующие хранимые процедуры находятся в msdb.
Слайд 7Конфигурация с помощью wizard-а
Слайд 8Безопасность
Системные параметры
sysmail_help_configure_sp – просмотр параметров
sysmail_configure_sp – изменение параметров
Настраиваются такие параметры как, количество
попыток отправки сообщения SMTP серверу, максимальный размер вложения, запрещеные расширения и проч.
Информация сохраняется в msdb
Пример: exec msdb.dbo.sysmail_configure_sp 'MaxFileSize', ‘1048576‘ --1Mb
Слайд 9Безопасность (продолжение)
По умолчанию любой пользователь имеет право вызывать sendimail_sp
Публичные профили никак не
связаны с 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 закрытый профиль по умолчанию
На вкладке Alert System свойств SQL Agent выбрать Mail System – SQLiMail и профиль