데이터베이스 메일 프로필 만들기

적용 대상:SQL ServerAzure SQL Managed Instance

데이터베이스 메일 구성 마법사 또는 Transact-SQL을 사용하여 데이터베이스 메일 공용 및 프라이빗 프로필을 만듭니다. 메일 프로필에 대한 자세한 내용은 데이터베이스 메일 프로필을 참조하세요.

시작하기 전에

전제 조건

프로필에 대한 데이터베이스 메일 계정을 하나 이상 만듭니다. 데이터베이스 메일 계정을 만드는 방법에 대한 자세한 내용은 데이터베이스 메일 계정 만들기를 참조 하세요.

보안

공개 프로필을 사용하면 데이터베이스에 액세스할 수 msdb 있는 모든 사용자가 해당 프로필을 사용하여 전자 메일을 보낼 수 있습니다. 개인 프로필은 사용자 또는 역할에서 사용할 수 있습니다. 역할에 프로필에 대한 액세스 권한을 부여하면 보다 쉽게 유지 관리되는 아키텍처가 만들어집니다. 메일을 보내려면 데이터베이스에서 DatabaseMailUserRolemsdb 의 구성원이어야 하며 하나 이상의 데이터베이스 메일 프로필에 액세스할 수 있어야 합니다.

사용 권한

프로필 계정을 만들고 저장 프로시저를 실행하는 사용자는 sysadmin 고정 서버 역할의 멤버여야 합니다.

데이터베이스 메일 구성 마법사 사용

데이터베이스 메일 프로필을 만들려면

  • 개체 탐색기에서 데이터베이스 메일을 구성하려는 SQL Server 인스턴스에 연결하고 서버 트리를 확장합니다.

  • 관리 노드 확장

  • 데이터베이스 메일을 두 번 클릭하여 데이터베이스 메일 구성 마법사를 엽니다.

  • 구성 작업 선택 페이지에서 데이터베이스 메일 계정 및 프로필 관리 옵션을 선택하고 다음 선택합니다.

  • 프로필 및 계정 관리 페이지에서 새 프로필 만들기 옵션을 선택하고 다음을 선택합니다.

  • 프로필 페이지에서 프로필 이름, 설명을 지정하고 프로필에 포함할 계정을 추가하고 다음을 선택합니다.

  • 마법사 완료 페이지에서 수행할 작업을 검토하고 마침을 선택하여 새 프로필 만들기를 완료합니다.

  • 데이터베이스 메일 프라이빗 프로필을 구성하려면 다음을 수행합니다.

    • 데이터베이스 메일 구성 마법사를 엽니다.

    • 구성 작업 선택 페이지에서 데이터베이스 메일 계정 및 프로필 관리 옵션을 선택하고 다음을 선택합니다.

    • 프로필 및 계정 관리 페이지에서 프로필 보안 관리 옵션을 선택하고 다음을 선택합니다.

    • 개인 프로필 탭에서 구성하려는 프로필의 확인란을 선택하고 다음을 선택합니다.

    • 마법사 완료 페이지에서 수행할 작업을 검토하고 마침을 선택하여 프로필 구성을 완료합니다.

  • 데이터베이스 메일 공개 프로필을 구성하려면

    • 데이터베이스 메일 구성 마법사를 엽니다.

    • 구성 작업 선택 페이지에서 데이터베이스 메일 계정 및 프로필 관리 옵션을 선택하고 다음을 선택합니다.

    • 프로필 및 계정 관리 페이지에서 프로필 보안 관리 옵션을 선택하고 다음을 선택합니다.

    • 공개 프로필 탭에서 구성하려는 프로필의 확인란을 선택하고 다음을 선택합니다.

    • 마법사 완료 페이지에서 수행할 작업을 검토하고 마침을 선택하여 프로필 구성을 완료합니다.

Transact-SQL 사용

데이터베이스 메일 프라이빗 프로필 만들기

  • SSMS(SQL Server Management Studio) 또는 Azure Data Studio를 사용하여 SQL Server 인스턴스에 연결합니다. 새 쿼리 창을 엽니다.

  • 새 프로필을 만들려면 다음과 같이 시스템 저장 프로시저 sysmail_add_profile_sp(Transact-SQL) 를 실행합니다.

    EXECUTE msdb.dbo.sysmail_add_profile_sp
      @profile_name = 'Profile Name'  
    , @description = 'Description';
    

    이전 스크립트 에서 @profile_name 프로필의 이름이고 @description 프로필에 대한 설명입니다. 이 매개 변수는 선택 사항입니다.

  • 각 계정에 대해 다음과 같이 저장 프로시저 sysmail_add_profileaccount_sp(Transact-SQL) 를 실행합니다.

    EXECUTE msdb.dbo.sysmail_add_profileaccount_sp
      @profile_name = 'Profile Name'
    , @account_name = 'Name of the account'  
    , @sequence_number = 'sequence number of the account within the profile.';
    

    이전 샘플 스크립트 에서 @profile_name 프로필의 이름이고 , @account_name 프로필에 추가할 계정의 이름이며, @sequence_number 프로필에서 계정이 사용되는 순서를 결정합니다.

  • 이 프로필을 사용하여 메일을 보낼 각 데이터베이스 역할 또는 사용자에 대해 프로필에 대한 액세스 권한을 부여합니다. 이렇게 하려면 다음과 같이 저장 프로시저 sysmail_add_principalprofile_sp(Transact-SQL) 를 실행합니다.

    EXECUTE msdb.sysmail_add_principalprofile_sp
     @profile_name = 'Name of the profile'
    , @principal_name = 'Name of the database user or role'  
    , @is_default = 'Default profile enabled';
    

    이전 샘플 스크립트 에서 @profile_name 프로필의 이름이고, @principal_name 데이터베이스 사용자 또는 역할의 이름이며 , @is_default 이 프로필이 데이터베이스 사용자 또는 역할의 기본값인지 여부를 결정합니다.

다음 예제에서는 데이터베이스 메일 계정을 만들고, 데이터베이스 메일 개인 프로필을 만든 다음, 해당 계정을 프로필에 추가하고 데이터베이스의 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 ;  

데이터베이스 메일 공개 프로필 만들기

  • SQL Server 인스턴스에 연결합니다.

  • 새 프로필을 만들려면 다음과 같이 시스템 저장 프로시저 sysmail_add_profile_sp(Transact-SQL) 를 실행합니다.

    EXECUTE msdb.dbo.sysmail_add_profile_sp
      @profile_name = 'Profile Name'  
    , @description = 'Description';
    

    이전 스크립트 에서 @profile_name 프로필의 이름이고 @description 프로필에 대한 설명입니다. 이 매개 변수는 선택 사항입니다.

  • 각 계정에 대해 다음과 같이 저장 프로시저 sysmail_add_profileaccount_sp(Transact-SQL) 를 실행합니다.

    EXECUTE msdb.dbo.sysmail_add_profileaccount_sp
      @profile_name = 'Name of the profile'  
    , @account_name* = 'Name of the account'  
    , @sequence_number* = 'sequence number of the account within the profile.'  
    

    이전 샘플 스크립트 에서 @profile_name 프로필의 이름이고 , @account_name 프로필에 추가할 계정의 이름이며, @sequence_number 프로필에서 계정이 사용되는 순서를 결정합니다.

  • 공용 액세스 권한을 부여하려면 다음과 같이 저장 프로시저 sysmail_add_principalprofile_sp(Transact-SQL) 를 실행합니다.

    EXECUTE msdb.sysmail_add_principalprofile_sp
      @profile_name = 'Name of the profile' 
    , @principal_name = 'public or 0'  
    , @is_default = 'Default Profile enabled';
    

    이전 샘플 스크립트에서 @profile_name 프로필의 이름이며, 이 프로필이 공개 프로필임을 나타내는 @principal_name @is_default 이 프로필이 데이터베이스 사용자 또는 역할의 기본값인지 여부를 결정합니다.

다음 예제에서는 데이터베이스 메일 계정을 만들고 데이터베이스 메일 개인 프로필을 만든 다음 프로필에 계정을 추가하고 프로필에 대한 공용 액세스 권한을 부여합니다.

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

다음 단계