Создайте профиль для почтовой базы данных

Используйте мастер настройки компонента Database Mail или Transact-SQL для создания общедоступных и частных профилей Database Mail.

Перед началом работы

Предпосылки

Создайте одну или несколько учетных записей компонента Database Mail для профиля. Дополнительные сведения о создании компонента Database Mail см. в разделе Создание учетной записи компонента Database Mail.

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

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

Разрешения

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

Использование мастера настройки компонента Database Mail

Создание профиля Database Mail

  • В Обозревателе объектов подключитесь к экземпляру SQL Server, на котором нужно настроить Database Mail, и разверните структуру сервера.

  • Разверните узел Управление

  • Дважды щелкните Database Mail, чтобы открыть мастер настройки компонента Database Mail.

  • На странице "Выбор задачи настройки" выберите пункт "Управление учетными записями и профилями базы данных" и нажмите кнопку "Далее".

  • На странице "Управление профилями и учетными записями " выберите " Создать новый профиль " и нажмите кнопку "Далее".

  • На странице "Новый профиль" укажите имя профиля, описание и добавление учетных записей, которые будут включены в профиль, и нажмите кнопку "Далее".

  • На странице "Завершение работы мастера " просмотрите действия, которые необходимо выполнить, и нажмите кнопку "Готово ", чтобы завершить создание нового профиля.

  • Настройка закрытого профиля компонента Database Mail.

    • Откройте мастер настройки компонента Database Mail.

    • На странице "Выбор задачи конфигурации" выберите пункт "Управление учетными записями и профилями базы данных" и нажмите кнопку "Далее".

    • На странице "Управление профилями и учетными записями" выберите пункт "Управление безопасностью профиля" и нажмите кнопку "Далее".

    • На вкладке "Частные профили" установите флажок для профиля, который вы хотите настроить и нажмите кнопку "Далее".

    • На странице "Завершение работы мастера" просмотрите действия, которые необходимо выполнить, и нажмите кнопку "Готово ", чтобы завершить настройку профиля.

  • Чтобы настроить публичный профиль Database Mail:

    • Откройте мастер настройки компонента Database Mail.

    • На странице "Выбор задачи конфигурации" выберите пункт "Управление учетными записями и профилями базы данных" и нажмите кнопку "Далее".

    • На странице "Управление профилями и учетными записями" выберите пункт "Управление безопасностью профиля" и нажмите кнопку "Далее".

    • На вкладке "Общедоступные профили" установите флажок для профиля, который вы хотите настроить и нажмите кнопку "Далее".

    • На странице "Завершение работы мастера" просмотрите действия, которые необходимо выполнить, и нажмите кнопку "Готово ", чтобы завершить настройку профиля.

Использование Transact-SQL

Создать закрытый профиль для Database Mail

  • Подключитесь к экземпляру SQL Server.

  • Чтобы создать новый профиль, запустите системную хранимую процедуру sysmail_add_profile_sp (Transact-SQL), как показано ниже.

    EXECUTEmsdb.dbo.sysmail_add_profile_sp

    @profile_name = "Имя профиля"

    @description = 'Описание'

    где @profile_name имя профиля, а @description — описание профиля. Это необязательный параметр.

  • Для каждой учетной записи выполните хранимую процедуру sysmail_add_profileaccount_sp (Transact-SQL), как показано ниже.

    EXECUTEmsdb.dbo.sysmail_add_profileaccount_sp

    @profile_name = "Имя профиля"

    @account_name = "Имя учетной записи"

    @sequence_number = "порядковый номер учетной записи в профиле". '

    где @profile_name — это имя профиля, а @account_name — имя учетной записи, добавляемой в профиль, @sequence_number определяет порядок использования учетных записей в профиле.

  • Всем ролям или пользователям баз данных, отправляющим письма с использованием этого профиля, следует предоставить доступ к профилю. Для этого выполните хранимую процедуру sysmail_add_principalprofile_sp (Transact-SQL), как показано ниже.

    EXECUTEmsdb.sysmail_add_principalprofile_sp

    @profile_name = "Имя профиля"

    @ principal_name = "Имя пользователя или роли базы данных"

    @is_default = "Состояние профиля по умолчанию "

    где @profile_name является именем профиля, а @principal_name — это имя пользователя или роли базы данных, @is_default определяет, является ли этот профиль по умолчанию для пользователя или роли базы данных.

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

-- Create a Database Mail account  
EXECUTE msdb.dbo.sysmail_add_account_sp  
    @account_name = 'AdventureWorks Administrator',  
    @description = 'Mail account for administrative e-mail.',  
    @email_address = 'dba@Adventure-Works.com',  
    @replyto_address = 'danw@Adventure-Works.com',  
    @display_name = 'AdventureWorks Automated Mailer',  
    @mailserver_name = 'smtp.Adventure-Works.com' ;  
  
-- Create a Database Mail profile  
EXECUTE msdb.dbo.sysmail_add_profile_sp  
    @profile_name = 'AdventureWorks Administrator Profile',  
    @description = 'Profile used for administrative mail.' ;  
  
-- Add the account to the profile  
EXECUTE msdb.dbo.sysmail_add_profileaccount_sp  
    @profile_name = 'AdventureWorks Administrator Profile',  
    @account_name = 'AdventureWorks Administrator',  
    @sequence_number =1 ;  
  
-- Grant access to the profile to the DBMailUsers role  
EXECUTE msdb.dbo.sysmail_add_principalprofile_sp  
    @profile_name = 'AdventureWorks Administrator Profile',  
    @principal_name = 'ApplicationUser',  
    @is_default = 1 ;  

Создание общедоступного профиля Database Mail

  • Подключитесь к экземпляру SQL Server.

  • Чтобы создать новый профиль, запустите системную хранимую процедуру sysmail_add_profile_sp (Transact-SQL), как показано ниже.

    EXECUTEmsdb.dbo.sysmail_add_profile_sp

    @profile_name = "Имя профиля"

    @description = 'Описание'

    где @profile_name имя профиля, а @description — описание профиля. Это необязательный параметр.

  • Для каждой учетной записи выполните хранимую процедуру sysmail_add_profileaccount_sp (Transact-SQL), как показано ниже.

    EXECUTEmsdb.dbo.sysmail_add_profileaccount_sp

    @profile_name = "Имя профиля"

    @account_name = "Имя учетной записи"

    @sequence_number = "порядковый номер учетной записи в профиле". '

    где @profile_name — это имя профиля, а @account_name — имя учетной записи, добавляемой в профиль, @sequence_number определяет порядок использования учетных записей в профиле.

  • Чтобы предоставить общий доступ, выполните хранимую процедуру sysmail_add_principalprofile_sp (Transact-SQL) следующим образом:

    EXECUTEmsdb.sysmail_add_principalprofile_sp

    @profile_name = "Имя профиля"

    @ principal_name = "public or 0"

    @is_default = "Состояние профиля по умолчанию "

    где @profile_name — это имя профиля, и @principal_name, чтобы указать, что это общедоступный профиль, @is_default определяет, является ли этот профиль по умолчанию для пользователя или роли базы данных.

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

-- Create a Database Mail account  
  
EXECUTE msdb.dbo.sysmail_add_account_sp  
    @account_name = 'AdventureWorks Public Account',  
    @description = 'Mail account for use by all database users.',  
    @email_address = 'db_users@Adventure-Works.com',  
    @replyto_address = 'danw@Adventure-Works.com',  
    @display_name = 'AdventureWorks Automated Mailer',  
    @mailserver_name = 'smtp.Adventure-Works.com' ;  
  
-- Create a Database Mail profile  
  
EXECUTE msdb.dbo.sysmail_add_profile_sp  
    @profile_name = 'AdventureWorks Public Profile',  
    @description = 'Profile used for administrative mail.' ;  
  
-- Add the account to the profile  
  
EXECUTE msdb.dbo.sysmail_add_profileaccount_sp  
    @profile_name = 'AdventureWorks Public Profile',  
    @account_name = 'AdventureWorks Public Account',  
    @sequence_number =1 ;  
  
-- Grant access to the profile to all users in the msdb database  
  
EXECUTE msdb.dbo.sysmail_add_principalprofile_sp  
    @profile_name = 'AdventureWorks Public Profile',  
    @principal_name = 'public',  
    @is_default = 1 ;