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

적용 대상:SQL Server

데이터베이스 메일에는 두 가지 구성 개체가 있습니다. 데이터베이스 구성 개체는 데이터베이스 애플리케이션 또는 SQL Server 에이전트에서 전자 메일을 보낼 때 데이터베이스 메일에서 사용해야 하는 설정을 구성하는 방법을 제공합니다.

  • 데이터베이스 메일 계정

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

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

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

Relationship of users, profiles, and accounts

데이터베이스 메일 계정

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

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

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

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

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

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

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

  • 계정 이름입니다.

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

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

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

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

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

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

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

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

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

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

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

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

데이터베이스 메일 프로필

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

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

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

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

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

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

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

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

다음 표에서는 데이터베이스 메일 구성 작업에 대해 설명합니다.

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

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

데이터베이스 메일 구성 저장 프로시저는 데이터베이스에 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) 데이터베이스 메일이 시작되었는지를 나타냅니다.

추가 참조