TLS 문제 처리
- 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>
- 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 |