Megosztás a következőn keresztül:


Replikáció konfigurálása Microsoft Entra-hitelesítéssel – Az Azure Arc által engedélyezett SQL Server

A következőkre vonatkozik: SQL Server 2022 (16.x)

Ez a cikk lépéseket tartalmaz a tranzakciós és pillanatkép-replikáció konfigurálásához a Microsoft Entra-azonosítóval (korábban Azure Active Directory) történő hitelesítéssel Azure-Arc engedélyezett SQL Serverhez.

Áttekintés

A Replikáció Microsoft Entra-hitelesítésének támogatása az SQL Server 2022 6. kumulatív frissítésében jelent meg, és általánosan elérhetővé vált a 12. kumulatív frissítésben. Ha Microsoft Entra-hitelesítést használ a replikációhoz, az egyetlen másik lépés az első lépés. Pontosabban hozzon létre egy Microsoft Entra-bejelentkezést, és adjon sysadmin-engedélyeket.

Ezt követően használja a Microsoft Entra bejelentkezési adatait a replikáció tárolt eljárásaiban a tranzakciós vagy pillanatkép-replikáció konfigurálásához, ahogyan azt általában tenné.

Megjegyzés:

Az SQL Server 2022 CU 6-tól kezdve tiltsa le a replikáció során a Microsoft Entra-hitelesítést az 11561-es munkamenet-nyomkövetési jelző használatával.

Előfeltételek

A replikáció Microsoft Entra-hitelesítéssel való konfigurálásához meg kell felelnie az alábbi előfeltételeknek:

  • Engedélyezze az SQL Server 2022-höz az Azure-Arc lehetőséget a 6. kumulatív frissítéssel kezdődően.
  • Konfigurálta a Microsoft Entra-hitelesítést a replikációs topológia minden kiszolgálója számára. Tekintse át az oktatóanyagot: A Microsoft Entra-hitelesítés beállítása AZ SQL Serverhez további információért.
  • Az SQL Server Management Studio (SSMS) támogatott verziója.
  • A közzétevőhöz és az előfizetőhöz csatlakozó felhasználó a sysadmin rögzített kiszolgálói szerepkör tagja.
  • A kapcsolatot megbízható hitelesítésszolgáltatótól (CA) vagy önaláírt tanúsítványból származó tanúsítvánnyal kell titkosítani.
    • Ha önaláírt tanúsítványt használ, importálni kell az ügyfélszámítógépre, és telepíteni kell a megbízható tanúsítványok listájára ahhoz, hogy az ügyfél megbízható legyen az SQL Serverben. Ezt a követelményt nem lehet megkerülni az SQL Server Management Studio (SSMS) Megbízhatósági kiszolgáló tanúsítványbeállításának kiválasztásával, mivel az nem működik a replikációval.

Korlátozások

A replikáció Microsoft Entra-hitelesítéssel való konfigurálására jelenleg a következő korlátozások vonatkoznak:

  • Jelenleg csak a Transact-SQL (T-SQL) és a replikációs tárolt eljárások, az SSMS 19.1-s vagy újabb verziójának Replikációs varázslója vagy az Azure Data Studio használatával konfigurálható. A replikáció jelenleg nem konfigurálható RMO replikációs objektumokkal vagy más parancssori nyelvekkel.
  • A replikációs topológia minden kiszolgálójának legalább AZ SQL Server 2022 CU 6-on kell lennie. Az SQL Server korábbi verziói nem támogatottak.

SQL-bejelentkezés létrehozása a Microsoft Entra-azonosítóból

Hozza létre a Microsoft Entra-bejelentkezést, és adja meg neki a szerepkört sysadmin .

A Microsoft Entra-bejelentkezés létrehozásához és sysadmin hozzárendeléséhez használja a következő Transact-SQL (T-SQL) parancsot:

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

Például a bejelentkezési név hozzáadásához newuser@tenant.com használja ezt a parancsot:

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

Terjesztési adatbázis létrehozása

A terjesztési adatbázis létrehozásához használja a sp_adddistributiondb.

Az alábbi példaszkript segítségével hozhatja létre a terjesztési adatbázist a forgalmazón:

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 

Az alábbi példa létrehozza a táblázatot UIProperties a terjesztési adatbázisban, és beállítja a SnapshotFolder tulajdonságot, hogy a pillanatkép-ügynök tudja, hol kell replikációs pillanatképeket írni:

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' 

A következő szkript konfigurálja a Publishert a forgalmazói adatbázis használatára, és meghatározza az AD-felhasználói bejelentkezést, valamint a replikációhoz használandó jelszót:

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' 

A replikáció engedélyezése

A sp_replicationdboption használatával engedélyezheti a replikációt a Publisher-adatbázisban, például testdbaz alábbi példában:

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

A kiadvány hozzáadása

Használja a sp_addpublication parancsot a kiadvány hozzáadásához.

Konfigurálhatja a tranzakciós vagy pillanatkép-replikációt.

Tranzakciós replikáció létrehozásához kövesse az alábbi lépéseket.

Először konfigurálja a naplóolvasó ügynököt:

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 

Ezután hozza létre a tranzakciós kiadványt:

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' 

Ezután hozza létre a Pillanatkép-ügynököt, és tárolja a Publisher pillanatképfájljait a Microsoft Entra bejelentkezés használatával, @publisher_login, és jelölje meg a Publisher jelszavát:

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>' 

Végül adja hozzá a cikket TestPub a kiadványhoz:

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' 

Előfizetés létrehozása

sp_addsubscription használatával vegye fel a Felhasználót, majd a Publisher esetében sp_addpushsubscription_agent használatával hozzon létre push típusú előfizetést, vagy sp_addpullsubscription_agent az Előfizetőn hozzon létre pull típusú előfizetést. Használja a Microsoft Entra bejelentkezést a @subscriber_login.

A következő példaszkript hozzáadja az előfizetést:

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 

A következő példaszkript egy leküldéses előfizetési ügynököt ad hozzá a Publisherhez:

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' 

Tárolt replikációs eljárások

Az SQL Server 2022 CU 6-ban az alábbi paramétereket módosították ezekben a replikációs tárolt eljárásokban a Microsoft Entra hitelesítés támogatására a replikációhoz.

A következő értékek határozzák meg a tárolt eljárások biztonsági módjait:

  • A 0 az SQL Server-hitelesítést adja meg.
  • 1 a Windows-hitelesítést adja meg.
  • A 2 az SQL Server 2022 CU 6-tól kezdődően megadja a Microsoft Entra jelszó-hitelesítést.
  • A 3 az SQL Server 2022 CU 6-tól kezdődően a Microsoft Entra integrált hitelesítését határozza meg.
  • 4 meghatározza a Microsoft Entra token hitelesítést, az SQL Server 2022 CU 6-tól kezdődően.

Következő lépések

További információkért tekintse át az SQL Server replikáció és a Microsoft Entra hitelesítés SQL Serverhez