Как создать открытый профиль компонента Database Mail (язык Transact-SQL)

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

Чтобы создать открытый профиль компонента Database Mail с помощью инструкций языка Transact-SQL

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

  2. Выполните хранимую процедуру msdb.dbo.sysmail_add_profile_sp для создания профиля, указав следующее:

    • имя создаваемого профиля;

    • необязательное описание профиля.

  3. Для каждой учетной записи выполните процедуру msdb.dbo.sysmail_add_profileaccount_sp, чтобы добавить учетную запись к профилю.

  4. Обеспечьте общий доступ к профилю, выполнив процедуру msdb.sysmail_add_principalprofile_sp со значением public параметра @principal_name или со значением 0 параметра @principal_id.

Пример

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

-- 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 ;