Microsoft Entra 인증을 사용하여 복제본(replica) 구성 - Azure Arc에서 사용하도록 설정된 SQL Server

적용 대상: SQL Server 2022(16.x)

이 문서에서는 Azure-Arc 지원 SQL Server에 대해 Microsoft Entra ID(이전의 Azure Active Directory)로 인증을 사용하여 트랜잭션 및 스냅샷 복제본(replica)tion을 구성하는 단계를 제공합니다.

개요

복제본(replica)tion에 대한 Microsoft Entra 인증 지원은 SQL Server 2022용 누적 업데이트 6에 도입되었으며 누적 업데이트 12에서 일반 공급되었습니다. 복제본(replica) 위해 Microsoft Entra 인증을 사용하는 경우 유일한 다른 단계는 첫 번째 단계입니다. 특히 Microsoft Entra 로그인을 만들고 sysadmin 권한을 부여합니다.

그런 다음 복제본(replica)tion 저장 프로시저에서 Microsoft Entra 로그인을 사용하여 평소처럼 트랜잭션 또는 스냅샷 복제본(replica)tion을 구성합니다.

참고 항목

SQL Server 2022 CU 6부터 세션 추적 플래그 11561을 사용하여 복제본(replica)tion에 대해 Microsoft Entra 인증을 사용하지 않도록 설정합니다.

필수 조건

Microsoft Entra 인증을 사용하여 복제본(replica)tion을 구성하려면 다음 필수 조건을 충족해야 합니다.

  • 누적 업데이트 6부터 Azure-Arc에서 SQL Server 2022를 사용하도록 설정합니다.
  • 복제본(replica)tion 토폴로지의 모든 서버에 대해 Microsoft Entra 인증을 구성했습니다. 자습서 검토 : 자세한 내용을 보려면 SQL Server 에 대한 Microsoft Entra 인증을 설정합니다.
  • SSMS(SQL Server Management Studio) v19.1 이상 또는 Azure Data Studio.
  • 게시자 및 구독자에 연결하는 사용자는 sysadmin 고정 서버 역할의 멤버입니다.
  • 신뢰할 수 있는 CA(인증 기관) 또는 자체 서명된 인증서의 인증서를 사용하여 연결을 암호화해야 합니다.
    • 자체 서명된 인증서를 사용하는 경우 클라이언트 컴퓨터로 가져와서 클라이언트가 SQL Server를 신뢰하도록 신뢰할 수 있는 인증서 목록에 설치해야 합니다. SSMS(SQL Server Management Studio)에서 서버 인증서 신뢰 옵션을 선택하면 복제본(replica) 작동하지 않으므로 이 요구 사항을 무시할 수 없습니다.

제한 사항

Microsoft Entra 인증을 사용하여 복제본(replica) 구성에는 현재 다음과 같은 제한 사항이 있습니다.

  • 현재는 T-SQL(Transact-SQL) 및 복제본(replica)tion 저장 프로시저, SSMS v19.1 이상의 복제 마법사 또는 Azure Data Studio를 사용하여 복제본(replica)tion을 구성할 수 있습니다. 현재 RMO 복제본(replica)tion 개체 또는 기타 명령줄 언어를 사용하여 복제본(replica)tion을 구성할 수 없습니다.
  • 복제본(replica)tion 토폴로지의 모든 서버는 SQL Server 2022 CU 6 이상에 있어야 합니다. 이전 버전의 SQL Server는 지원되지 않습니다.

Microsoft Entra ID에서 SQL 로그인 만들기

Microsoft Entra 로그인을 만들고 역할을 부여합니다 sysadmin .

Microsoft Entra 로그인을 만들고 할당 sysadmin하려면 다음 T-SQL(Transact-SQL) 명령을 사용합니다.

USE master
CREATE LOGIN [login_name] FROM EXTERNAL PROVIDER
EXEC sp_addsrvrolemember @loginame='login_name', @rolename='sysadmin' 

예를 들어 로그인 이름을 newuser@tenant.com추가하려면 다음 명령을 사용합니다.

USE master
CREATE LOGIN [newuser@tenant.com] FROM EXTERNAL PROVIDER
EXEC sp_addsrvrolemember @loginame='newuser@tenant.com', @rolename='sysadmin' 

배포 데이터베이스 만들기

sp_adddistributiondb 사용하여 배포 데이터베이스를 만듭니다.

다음은 배포자에서 배포 데이터베이스를 만드는 예제 스크립트입니다.

EXEC sp_adddistributiondb @database = N'distribution_db', 
@data_folder = N'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER22\MSSQL\DATA', 
@log_folder = N'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER22\MSSQL\DATA', 
@log_file_size = 2, @min_distretention = 0, @max_distretention = 72, 
@history_retention = 48, @deletebatchsize_xact = 5000, 
@deletebatchsize_cmd = 2000, @security_mode = 1 

다음 예제에서는 배포 데이터베이스에서 테이블을 UIProperties 만들고 스냅샷 에이전트가 복제본(replica)tion 스냅샷 쓸 위치를 알 수 있도록 속성을 설정합니다SnapshotFolder.

USE [distribution_db] 
IF (not exists (SELECT * FROM sysobjects WHERE NAME = 'UIProperties' and TYPE = 'U ')) 
CREATE TABLE UIProperties(id int) 
IF (exists(SELECT * FROM::fn_listextendedproperty('SnapshotFolder', 'user', 'dbo', 'table', 'UIProperties', null, null))) 
EXEC sp_updateextendedproperty N'SnapshotFolder', N' C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER22\MSSQL\DATA', 
'user', dbo, 'table', 'UIProperties' 
ELSE 

EXEC sp_addextendedproperty N'SnapshotFolder', N' C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER22\MSSQL\DATA', 
'user', dbo, 'table', 'UIProperties' 

다음 스크립트는 배포자 데이터베이스를 사용하도록 게시자를 구성하고, 복제본(replica) 위해 사용할 암호와 함께 AD 사용자 로그인을 정의합니다.

EXEC sp_adddistpublisher @publisher = N'publisher_db', @distribution_db = N'distribution_db', 
@security_mode = 0, @login = N'newuser@tenant.com', @password = N'password', 
@working_directory = N'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER22\MSSQL\ReplData', 
@trusted = N'false', @thirdparty_flag = 0, @publisher_type = N'MSSQLSERVER' 

복제 사용

다음 예제와 같이 testdbsp_복제본(replica)tiondboption을 사용하여 Publisher 데이터베이스에서 복제본(replica)tion을 사용하도록 설정합니다.

EXEC sp_replicationdboption @dbname = N'testdb', @optname = N'publish', @value = N'true' 

게시 추가

sp_addpublication 사용하여 게시를 추가합니다.

트랜잭션 또는 스냅샷 복제본(replica) 구성할 수 있습니다.

다음 단계에 따라 트랜잭션 복제본(replica) 만듭니다.

먼저 로그 판독기 에이전트를 구성합니다.

USE [AdventureWorksDB] 
EXEC [AdventureWorksDB].sys.sp_addlogreader_agent @job_login = null, @job_password = null, 
@publisher_security_mode = 2, @publisher_login = N'newuser@tenant.com', 
@publisher_password = N'<password>', @job_name = null 
GO 

다음으로 트랜잭션 게시를 만듭니다.

use [AdventureWorksDB] 
exec sp_addpublication @publication = N'AdvWorksProducTrans', 
@description = N'Publication of database ''AdventureWorksDB'' from Publisher 'N'publisher_db''.', 
@sync_method = N'concurrent', @retention = 0, @allow_push = N'true', @allow_pull = N'true', 
@allow_anonymous = N'false', @enabled_for_internet = N'false', @snapshot_in_defaultfolder = N'true', 
@compress_snapshot = N'false', @ftp_port = 21, @allow_subscription_copy = N'false', 
@add_to_active_directory = N'false', @repl_freq = N'continuous', @status = N'active', 
@independent_agent = N'true', @immediate_sync = N'false', @allow_sync_tran = N'true', 
@allow_queued_tran = N'true', @allow_dts = N'false', @replicate_ddl = 1, 
@allow_initialize_from_backup = N'false', @enabled_for_p2p = N'false', 
@enabled_for_het_sub = N'false', @conflict_policy = N'pub wins' 

그런 다음, 스냅샷 에이전트 만들고 게시자에 대한 Microsoft Entra 로그인을 사용하고 게시자의 암호를 정의하여 게시자에 대한 @publisher_login 스냅샷 파일을 저장합니다.

use [AdventureWorksDB] 
exec sp_addpublication_snapshot @publication = N'AdvWorksProducTrans', @frequency_type = 1,
 @frequency_interval = 1, @frequency_relative_interval = 1, @frequency_recurrence_factor = 0, 
@frequency_subday = 8, @frequency_subday_interval = 1, @active_start_time_of_day = 0, 
@active_end_time_of_day = 235959, @active_start_date = 0, @active_end_date = 0, 
@job_login = null, @job_password = null, @publisher_security_mode = 2, 
@publisher_login = N'newuser@tenant.com', @publisher_password = N'<password>' 

마지막으로 게시에 아티클 TestPub 을 추가합니다.

use [AdventureWorksDB] 
exec sp_addarticle @publication = N'AdvWorksProducTrans', @article = N'testtable', 
@source_owner = N'dbo', @source_object = N'testtable', @type = N'logbased', 
@description = null, @creation_script = null, @pre_creation_cmd = N'drop', 
@schema_option = 0x000000000803509D, @identityrangemanagementoption = N'manual', 
@destination_table = N'testtable', @destination_owner = N'dbo', @vertical_partition = N'false' 

구독 만들기

sp_addsubscription 사용하여 구독자를 추가한 다음 게시자의 sp_addpushsubscription_agent 사용하여 밀어넣기 구독을 만들거나 구독자에 sp_addpullsubscription_agent 끌어오기 구독을 만듭니다. 에 대한 Microsoft Entra 로그인을 @subscriber_login사용합니다.

다음 샘플 스크립트는 구독을 추가합니다.

USE [testdb] 
EXEC sp_addsubscription @publication = N'testpub', @subscriber = N'<subscription_server>', 
@destination_db = N'testdb', @subscription_type = N'Push', @sync_type = N'automatic', 
@article = N'all', @update_mode = N'read only', @subscriber_type = 0 

다음 샘플 스크립트는 게시자에 밀어넣기 구독 에이전트를 추가합니다.

EXEC sp_addpushsubscription_agent @publication = N'testpub', @subscriber = N'<subscription server.', 
@subscriber_db = N'testdb', @job_login = null, @job_password = null, @subscriber_security_mode = 2, 
@subscriber_login = N'newuser@tenant.com', @subscriber_password = 'password', @frequency_type = 64, 
@frequency_interval = 0, @frequency_relative_interval = 0, @frequency_recurrence_factor = 0, 
@frequency_subday = 0, @frequency_subday_interval = 0, @active_start_time_of_day = 0, 
@active_end_time_of_day = 235959, @active_start_date = 20220406, @active_end_date = 99991231, @enabled_for_syncmgr = N'False', @dts_package_location = N'Distributor' 

복제 저장 프로시저

이러한 복제본(replica)tion 저장 프로시저의 다음 매개 변수는 SQL Server 2022용 CU 6에서 수정되어 복제본(replica)에 대한 Microsoft Entra 인증을 지원합니다.

  • sp_addpullsubscription_agent:@distributor_security_mode
  • sp_addpushsubscription_agent:@subscriber_security_mode
  • sp_addmergepullsubscription_agent: @publisher_security_mode@distributor_security_mode
  • sp_addmergepushsubscription_agent: @subscriber_security_mode@publisher_security_mode
  • sp_addlogreader_agent:@publisher_security_mode
  • sp_changelogreader_agent:@publisher_security_mode
  • sp_addpublication_스냅샷:@publisher_security_mode
  • sp_changepublication_스냅샷:@publisher_security_mode

다음 값은 이러한 저장 프로시저에 대한 보안 모드를 정의합니다.

  • 0 은 SQL Server 인증을 지정합니다.
  • 1 은 Windows 인증을 지정합니다.
  • 2 는 SQL Server 2022 CU 6부터 Microsoft Entra 암호 인증을 지정합니다.
  • 3 은 SQL Server 2022 CU 6부터 Microsoft Entra 통합 인증을 지정합니다.
  • 4 는 SQL Server 2022 CU 6부터 Microsoft Entra 토큰 인증을 지정합니다.

다음 단계

자세한 내용은 SQL Server에 대한 SQL Server 복제Microsoft Entra 인증을 검토하세요.