Microsoft 365로 SQL Database Mail 구성 시 TLS 문제, 일반 사용자 권한 문제 처리

2025. 1. 3. 15:14· Database/MSSQL
목차
  1. TLS 문제 처리
  2. 권한 문제 처리

TLS 문제 처리

https://stackoverflow.com/questions/71116436/database-mail-will-not-send-email-to-smtp-office365-com?utm_source=chatgpt.com

 

  • Microsoft 365는 전역(인프라?)이 - TLS v 1.2가 기본
  • SQL Server 2017 이하 버전은 아래 관련 내용이 필요할 수 있습니다.
  • https://learn.microsoft.com/en-us/exchange/mail-flow-best-practices/how-to-set-up-a-multifunction-device-or-application-to-send-email-using-microsoft-365-or-office-365

아래 내용에서 레지스트리 부분만 처리하면 됩니다.

[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\.NETFramework\\v4.0.30319]
"SchUseStrongCrypto"=dword:00000001
  • DatabaseMail.exe는 .NET Framework 3.5용으로 빌드되었지만 TLS 1.2(.NET Framework 4.5.2 이상)를 지원하는 .NET Framework가 설치되어 있어야 합니다.
  • TLS 1.2 클라이언트 프로토콜은 레지스트리의 컴퓨터 수준에서 사용하도록 설정해야 합니다.
[HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\SecurityProviders\\SCHANNEL\\Protocols\\TLS 1.2\\Client]
"DisabledByDefault"=dword:00000000
"Enabled"=dword:00000001

  • 레지스트리에서 .NET Framework 4.x에 대해 TLS 1.2 클라이언트 프로토콜을 사용하도록 설정해야 합니다.
[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\.NETFramework\\v4.0.30319]
"SchUseStrongCrypto"=dword:00000001

[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\.NETFramework\\v4.0.30319]
"SchUseStrongCrypto"=dword:00000001

  • 적절한 supportedRuntime 은 DatabaseMail.exe.config 파일에 있어야합니다 (예 : Microsoft .NET Framework 4.5.2가 설치된 경우).
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="DatabaseServerName" value="." />
    <add key="DatabaseName" value="msdb" />
  </appSettings>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
  </startup>
</configuration>

  1. SSMS의 데이터베이스 메일 설정을 통해 보내는 계정을 적절하게 구성합니다.
  • 서버 이름: smtp.office365.com
  • 포트 번호: 587(선호 또는 25)
  • 이 서버에는 보안 연결(SSL)이 필요합니다: 선택해야 합니다(STARTTLS 활성화).
  • SMTP 인증:
    • 기본 인증(선택됨)
      • 사용자 이름: sending_mailbox_user@your_domain.com
      • 암호: your_office365_password
      • 비밀번호 확인: your_office365_password_again

권한 문제 처리

-- 권한이 있는 계정 (관리자 계정)으로 실행해야 합니다.
USE msdb;

CREATE USER lacs FOR LOGIN [대상로그인];

-- sysmail_mailitems 테이블에 SELECT 권한 부여
GRANT SELECT ON [msdb].[dbo].[sysmail_mailitems] TO [대상로그인];

/*
-- 기본적으로 일반 사용자 계정에서 삭제나 입력을 처리해서는 안된다.
-- 기본적으로 일반 사용자 계정에서 삭제나 입력을 처리해서는 안된다.
-- 기본적으로 일반 사용자 계정에서 삭제나 입력을 처리해서는 안된다.
-- 기본적으로 일반 사용자 계정에서 삭제나 입력을 처리해서는 안된다.

-- sysmail_mailitems 테이블에 INSERT 권한 부여
GRANT INSERT ON [msdb].[dbo].[sysmail_mailitems] TO [대상로그인];

-- sysmail_mailitems 테이블에 DELETE 권한 부여
GRANT DELETE ON [msdb].[dbo].[sysmail_mailitems] TO [대상로그인];

-- DatabaseMailUserRole 역할을 사용자에게 부여
EXEC sp_addrolemember 'DatabaseMailUserRole', '대상로그인';

*/
 
 -- 특정 사용자에게 sp_send_dbmail 프로시저 실행 권한 부여
GRANT EXECUTE ON msdb.dbo.sp_send_dbmail TO [대상로그인];

EXEC sp_addrolemember 'DatabaseMailUserRole', '대상로그인';

'Database > MSSQL' 카테고리의 다른 글

SQL Server의 스냅샷 격리  (0) 2022.03.11
Database 자동 생성 스크립트  (0) 2017.05.23
[MSSQL] 전체 데이터베이스 파일 정보 조회 (전체 DB 파일 목록 정보)  (0) 2017.03.15
Table Valued Parameters(TVP)  (0) 2016.08.01
​MSSQL 에서 CRUD 기본 스크립트를 생성해 주는 프러시저  (0) 2016.06.20
  1. TLS 문제 처리
  2. 권한 문제 처리
'Database/MSSQL' 카테고리의 다른 글
  • SQL Server의 스냅샷 격리
  • Database 자동 생성 스크립트
  • [MSSQL] 전체 데이터베이스 파일 정보 조회 (전체 DB 파일 목록 정보)
  • Table Valued Parameters(TVP)
달빛에취하다
달빛에취하다
개발 관련 자료
달빛에취하다
삽질은 내 운명
달빛에취하다
전체
오늘
어제
GUEST
WRITE
ADMIN
  • 분류 전체보기 (72)
    • .Net Framework Standard (8)
      • WindowsApplication (7)
      • Silverlight (0)
      • ASP.NET (3)
      • Component (5)
    • .Net Core (3)
      • gRPC (2)
    • Database (8)
      • MSSQL (8)
      • MySQL (0)
      • Oracle (0)
    • Server (28)
      • Windows Server (15)
      • Linux (7)
      • NAS (1)
    • Etc (7)
      • Utility (3)

블로그 메뉴

  • 홈
  • 방명록

공지사항

인기 글

태그

  • IIS
  • GRPC
  • reverseproxy
  • mssql
  • C#
  • sql
  • ARR
  • office365
  • ssl
  • DevExpress
  • Windows
  • ClickOnce
  • TLS
  • Fiddler
  • 인증서
  • reverse proxy
  • Microsoft365
  • hyper-v
  • VisualStudio
  • m365
  • docker
  • url rewrite
  • ubuntu
  • https
  • TreeList
  • Windows Server
  • powershell
  • ad
  • ServicePointManager.SecurityProtocol
  • TLS1.2

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
달빛에취하다
Microsoft 365로 SQL Database Mail 구성 시 TLS 문제, 일반 사용자 권한 문제 처리
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.