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


Оповещения компонента Database Mail и электронной почты с агент SQL Server в Linux

Область применения: SQL Server — Linux

В этой статье показано, как настроить компонент Database Mail и использовать его с агент SQL Server (mssql-server-agent) в Linux.

1. Включение компонента Database Mail

USE master;
GO

EXECUTE sp_configure 'show advanced options', 1;
GO

RECONFIGURE WITH OVERRIDE;
GO

EXECUTE sp_configure 'Database Mail XPs', 1;
GO

RECONFIGURE;
GO

2. Создание учетной записи

EXECUTE msdb.dbo.sysmail_add_account_sp
    @account_name = 'SQLAlerts',
    @description = 'Account for Automated DBA Notifications',
    @email_address = 'sqlagenttest@example.com',
    @replyto_address = 'sqlagenttest@example.com',
    @display_name = 'SQL Agent',
    @mailserver_name = 'smtp.example.com',
    @port = 587,
    @enable_ssl = 1,
    @username = 'sqlagenttest@example.com',
    @password = '<password>';
GO

Внимание

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

3. Создание профиля по умолчанию

EXECUTE msdb.dbo.sysmail_add_profile_sp
    @profile_name = 'default',
    @description = 'Profile for sending Automated DBA Notifications';
GO

4. Добавление учетной записи Database Mail в профиль Database Mail

EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
    @profile_name = 'default',
    @principal_name = 'public',
    @is_default = 1;
GO

5. Добавление учетной записи в профиль

EXECUTE msdb.dbo.sysmail_add_profileaccount_sp
    @profile_name = 'default',
    @account_name = 'SQLAlerts',
    @sequence_number = 1;
GO

6. Отправка тестового сообщения электронной почты

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

EXECUTE msdb.dbo.sp_send_dbmail
    @profile_name = 'default',
    @recipients = 'recipient-email@example.com',
    @subject = 'Testing DBMail',
    @body = 'This message is a test for DBMail';
GO

7. Настройка профиля Database Mail с помощью mssql-conf или переменной среды

Вы можете использовать служебную программу mssql-conf или переменные среды для регистрации профиля Database Mail. В этом случае давайте вызовем наш профиль default.

  • Установите с помощью mssql-conf:

    sudo /opt/mssql/bin/mssql-conf set sqlagent.databasemailprofile default
    
  • Задать с помощью переменной среды:

    MSSQL_AGENT_EMAIL_PROFILE=default
    

8. Настройка оператора для уведомлений о задании агент SQL Server

EXECUTE msdb.dbo.sp_add_operator
    @name = N'JobAdmins',
    @enabled = 1,
    @email_address = N'recipient-email@example.com',
    @category_name = N'[Uncategorized]';
GO

9. Отправка сообщения электронной почты при успешном выполнении задания агента

EXECUTE msdb.dbo.sp_update_job
    @job_name = 'Agent Test Job',
    @notify_level_email = 1,
    @notify_email_operator_name = N'JobAdmins';
GO