Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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.
-
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_snapshot:
@publisher_security_mode -
sp_changepublication_snapshot:
@publisher_security_mode
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