다음을 통해 공유


데이터베이스 메일 구성 개체

적용 대상: SQL Server

데이터베이스 메일에는 두 가지 구성 개체가 있습니다. 데이터베이스 구성 개체를 사용하면 데이터베이스 애플리케이션 또는 SQL Server 에이전트에서 전자 메일을 보낼 때 데이터베이스 모델에서 사용할 설정을 구성할 수 있습니다.

  • 데이터베이스 메일 계정

  • 데이터베이스 메일 프로필

데이터베이스 메일 구성 개체 관계

위 그림에서는 2개의 프로필, 3개의 계정 및 3명의 사용자를 보여 줍니다. 사용자 1은 계정 1 및 계정 2를 사용하는 프로필 1에 액세스할 수 있습니다. 사용자 3은 계정 2 및 계정 3를 사용하는 프로필 2에 액세스할 수 있습니다. 사용자 2는 프로필 1과 프로필 2 모두에 액세스할 수 있습니다.

사용자, 프로필 및 계정의 관계

데이터베이스 메일 계정

데이터베이스 메일 계정에는 Microsoft SQL Server에서 전자 메일 메시지를 SMTP 서버로 보내기 위해 사용하는 정보가 포함되어 있습니다. 각 계정에는 하나의 전자 메일 서버에 대한 정보가 포함됩니다.

데이터베이스 메일은 SMTP 서버와 통신하는 다음 3가지 인증 방법을 지원합니다.

  • Windows 인증: 데이터베이스 메일이 SQL Server 데이터베이스 엔진 Windows 서비스 계정의 자격 증명을 사용하여 SMTP 서버에 인증합니다.

  • 기본 인증: 데이터베이스 메일은 지정된 사용자 이름과 암호를 사용하여 SMTP 서버에서 인증합니다.

  • Exchange Online에 대한 기본 인증은 더 이상 사용되지 않습니다. 자세한 내용은 기본 인증 및 Exchange Online을 참조하세요.

  • 익명 인증: SMTP 서버에는 인증이 필요하지 않습니다. 데이터베이스 메일은 자격 증명을 사용하여 SMTP 서버에서 인증하지 않습니다.

계정 정보가 msdb 데이터베이스에 저장됩니다. 각 계정은 다음 정보로 구성됩니다.

  • 계정 이름입니다.

  • 계정에 대한 설명입니다.

  • 계정의 메일 주소입니다.

  • 계정의 표시 이름입니다.

  • 계정에 대한 회신 정보로 사용할 전자 메일 주소입니다.

  • 전자 메일 서버의 이름입니다.

  • 전자 메일 서버의 유형을 가져옵니다. Microsoft SQL Server의 경우 항상 SMTP(Simple Mail Transfer Protocol)입니다.

  • 전자 메일 서버의 포트 번호입니다.

  • SMTP 메일 서버에 대한 연결이 이전에 SSL(Secure Sockets Layer)로 알려진 TLS(전송 계층 보안)를 사용하여 만들어졌는지 여부를 나타내는 비트 열입니다.

  • SQL Server 데이터베이스 엔진에 대해 구성된 자격 증명을 사용하여 SMTP 서버에 연결하는지 여부를 나타내는 bit 열입니다.

  • 전자 메일 서버에 인증이 필요한 경우 전자 메일 서버에 대한 인증에 사용할 사용자 이름입니다.

  • 전자 메일 서버에 인증이 필요한 경우 전자 메일 서버에 대한 인증에 사용할 암호입니다.

데이터베이스 메일 구성 마법사는 계정을 만들고 관리하는 편리한 방법을 제공합니다. 또한 msdb의 구성 저장 프로시저를 사용하여 계정을 만들고 관리할 수도 있습니다.

데이터베이스 메일 프로필

데이터베이스 메일 프로필은 순서가 지정된 관계형 데이터베이스 메일 계정 컬렉션입니다. 데이터베이스 메일을 사용하여 전자 메일을 보내는 애플리케이션은 계정을 직접 사용하는 대신 프로필을 지정합니다. 애플리케이션에서 사용하는 개체에서 개별 전자 메일 서버에 대한 정보를 분리하면 유연성과 안정성이 향상됩니다. 즉, 프로필이 자동 장애 조치(failover)를 제공하므로 한 전자 메일 서버가 응답하지 않는 경우 데이터베이스 메일은 자동으로 다른 전자 메일 서버로 메일을 보낼 수 있습니다. 데이터베이스 관리자는 애플리케이션 코드 또는 작업 단계를 변경하지 않고도 계정을 추가, 제거 또는 재구성할 수 있습니다.

또한 프로필은 데이터베이스 관리자가 전자 메일에 대한 액세스를 제어하는 데 도움이 됩니다. 데이터베이스 메일을 보내려면 DatabaseMailUserRole의 멤버십이 필요합니다. 프로필은 추가적인 유연성을 제공하여 관리자가 메일을 보내는 사람과 사용되는 계정을 제어할 수 있습니다.

프로필은 공개 또는 비공개일 수 있습니다.

공개 프로필msdb 데이터베이스에 있는 msdb 데이터베이스 역할의 모든 멤버에 대해 사용할 수 있습니다. 공개 프로필이 있으면 DatabaseMailUserRole 역할의 모든 멤버는 해당 프로필을 사용하여 메일을 보낼 수 있습니다.

비공개 프로필msdb 데이터베이스의 보안 주체에 대해 정의됩니다. 지정된 데이터베이스 사용자, 역할 및 sysadmin 고정 서버 역할의 멤버만 프로필을 사용하여 전자 메일을 보낼 수 있습니다. 기본적으로 프로필은 프라이빗 프로필이며 sysadmin 고정 서버 역할의 멤버에게만 액세스를 허용합니다. 프라이빗 프로필을 사용할 수 있도록 하려면 sysadmin 이 사용자에게 프로필 사용 권한을 부여해야 합니다. 또한 sp_send_dbmail 저장 프로시저에 대한 EXECUTE 권한은 DatabaseMailUserRole의 멤버에게만 부여됩니다. 시스템 관리자는 사용자가 전자 메일 메시지를 보낼 수 있도록 DatabaseMailUserRole 데이터베이스 역할에 사용자를 추가해야 합니다.

프로필은 전자 메일 서버에 연결할 수 없거나 메시지를 처리할 수 없는 경우에 안정성을 향상시킵니다. 프로필의 각 계정에는 시퀀스 번호가 있습니다. 시퀀스 번호는 데이터베이스 메일 프로필에서 계정을 사용하는 순서를 결정합니다. 새 전자 메일 메시지의 경우 데이터베이스 메일은 메시지를 성공적으로 보낸 마지막 계정 또는 아직 메시지를 보내지 않은 경우 시퀀스 번호가 가장 낮은 계정을 사용합니다. 해당 계정이 실패하면 데이터베이스 메일 다음으로 높은 시퀀스 번호가 있는 계정을 사용하며, 데이터베이스 메일이 메시지를 성공적으로 보내거나 시퀀스 번호가 가장 높은 계정이 실패할 때까지 계속합니다. 시퀀스 번호가 가장 높은 계정이 실패하면 데이터베이스 메일은 sysmail_configure_spAccountRetryDelay 매개 변수에서 구성한 기간 동안 메일을 보내려는 시도를 일시 중지했다가 가장 낮은 시퀀스 번호에서 시작하여 다시 메일 보내기를 시도합니다. sysmail_configure_spAccountRetryAttempts 매개 변수를 사용하여 외부 메일 프로세스가 지정한 프로필의 각 계정을 사용하여 메일 메시지 보내기를 시도하는 시간을 구성할 수 있습니다.

시퀀스 번호가 같은 계정이 두 개 이상 있는 경우 데이터베이스 메일은 지정된 전자 메일 메시지에 해당 계정 중 하나만 사용합니다. 이 경우 데이터베이스 메일에서 항상 특정 시퀀스 번호에 대해 해당 계정이 사용되거나 메시지 간 동일한 계정이 사용되는 것은 아닙니다.

데이터베이스 메일 구성 작업

다음 테이블에서는 데이터베이스 메일 구성 작업을 설명합니다.

구성 태스크 항목 링크
데이터베이스 메일 계정을 만드는 방법에 대해 설명합니다. 데이터베이스 메일 계정을 만듭니다
데이터베이스 메일 프로필을 만드는 방법 설명 데이터베이스 메일 프로필 만듭니다
데이터베이스 메일을 구성하는 방법 설명 데이터베이스 메일 구성
템플릿을 사용하여 데이터베이스 메일 구성 스크립트를 만드는 방법 설명

추가 데이터베이스 구성 작업(시스템 저장 프로시저)

데이터베이스 메일 구성 저장 프로시저는 msdb 데이터베이스에 있습니다.

다음 테이블은 데이터베이스 메일 구성하고 관리하는 데 사용되는 저장 프로시저를 나열합니다.

데이터베이스 메일 설정

속성 설명
sysmail_configure_sp (Transact-SQL) 데이터베이스 메일에 대한 구성 설정을 변경합니다.
sysmail_help_configure_sp (Transact-SQL) 데이터베이스 메일에 대한 구성 설정을 표시합니다.

계정 및 프로필

속성 설명
sysmail_add_profileaccount_sp(Transact-SQL) 데이터베이스 메일 프로필에 메일 계정을 추가합니다.
sysmail_delete_account_sp (Transact-SQL) 데이터베이스 메일 계정을 삭제합니다.
sysmail_delete_profile_sp (Transact-SQL) 데이터베이스 메일 프로필을 삭제합니다.
sysmail_delete_profileaccount_sp (Transact-SQL) 데이터베이스 메일 프로필에서 계정을 제거합니다.
sysmail_help_account_sp (Transact-SQL) 데이터베이스 메일 계정에 대한 정보를 나열합니다.
sysmail_help_profile_sp (Transact-SQL) 하나 이상의 데이터베이스 메일 프로필에 대한 정보를 나열합니다.
sysmail_help_profileaccount_sp (Transact-SQL) 하나 이상의 데이터베이스 메일 프로필과 연결된 계정을 나열합니다.
sysmail_update_account_sp(Transact-SQL) 기존 데이터베이스 메일 계정의 정보를 업데이트합니다.
sysmail_update_profile_sp (Transact-SQL) 데이터베이스 메일 프로필의 설명 또는 이름을 변경합니다.
sysmail_update_profileaccount_sp (Transact-SQL) 데이터베이스 메일 프로필 내 계정의 시퀀스 번호를 업데이트합니다.

보안

속성 설명
sysmail_add_principalprofile_sp (Transact-SQL) 데이터베이스 보안 주체가 데이터베이스 메일 프로필을 사용할 수 있는 권한을 부여합니다.
sysmail_delete_principalprofile_sp(Transact-SQL) 퍼블릭 또는 프라이빗 데이터베이스 메일 프로필을 사용하는 데이터베이스 사용자의 사용 권한을 제거합니다.
sysmail_help_principalprofile_sp (Transact-SQL) 지정한 데이터베이스 사용자에 대한 데이터베이스 메일 프로필 정보를 나열합니다
sysmail_update_principalprofile_sp (Transact-SQL) 지정된 데이터베이스 사용자의 사용 권한 정보를 업데이트합니다.

시스템 상태

속성 설명
sysmail_start_sp (Transact-SQL) 데이터베이스 메일 외부 프로그램 및 관련 SQL Service Broker 큐를 시작합니다.
sysmail_stop_sp (Transact-SQL) 데이터베이스 메일 외부 프로그램 및 관련 SQL Service Broker 큐를 중지합니다.
sysmail_help_status_sp (Transact-SQL) 데이터베이스 메일 시작되었는지를 나타냅니다.

추가 참조