Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro: SQL Server 2022 (16.x) a novější verze
Tento článek obsahuje postup konfigurace transakční replikace a replikace snímků pomocí ověřování s ID Microsoft Entra (dříve Azure Active Directory) pro SQL Server povolený službou Azure Arc.
Přehled
Podpora ověřování Microsoft Entra pro replikaci byla zavedena v SYSTÉMU SQL Server 2022 (16.x) Kumulativní aktualizace (CU) 6 a obecně dostupná v CU 12. Pokud pro replikaci použijete ověřování Microsoft Entra, jediným krokem je první krok. Konkrétně vytvořte přihlášení Microsoft Entra a udělte oprávnění správce systému.
Potom pomocí přihlášení Microsoft Entra v uložených procedurách replikace nakonfigurujte transakční nebo snímkovou replikaci tak, jak byste normálně.
Poznámka:
Počínaje SQL Serverem 2022 CU 6 zakažte ověřování Microsoft Entra pro replikaci pomocí trasovacího příznaku relace 11561.
Požadavky
Pokud chcete nakonfigurovat replikaci pomocí ověřování Microsoft Entra, musíte splnit následující požadavky:
- Má SQL Server 2022 povolený službou Azure-Arc počínaje kumulativní aktualizací 6.
- Nakonfigurovali jsme ověřování Microsoft Entra pro každý server v topologii replikace. Projděte si kurz: Nastavení ověřování Microsoft Entra pro SQL Server s registrací aplikace, abyste se dozvěděli více.
- Podporovaná verze aplikace SQL Server Management Studio (SSMS)
- Uživatel, který se připojuje k vydavateli a odběrateli, je členem pevné role serveru správce systému .
- Připojení musí být šifrované pomocí certifikátu od důvěryhodné certifikační autority (CA) nebo certifikátu podepsaného svým držitelem.
- Pokud se používá certifikát podepsaný svým držitelem, musí být importován do klientského počítače a nainstalován do seznamu důvěryhodných certifikátů, aby klient důvěřoval SQL Serveru. Tento požadavek nejde obejít tak, že v aplikaci SQL Server Management Studio (SSMS) vyberete možnost Důvěřovat certifikátu serveru , protože nefunguje s replikací.
Omezení
Konfigurace replikace pomocí ověřování Microsoft Entra má aktuálně následující omezení:
- V současné době je možné nakonfigurovat replikaci pouze pomocí Transact-SQL (T-SQL) a uložených procedur replikace a Průvodce replikací v SSMS verze 19.1 nebo vyšší. V současné době není možné nakonfigurovat replikaci pomocí objektů replikace RMO nebo jiných jazyků příkazového řádku.
- Každý server v topologii replikace musí být alespoň na SQL Serveru 2022 CU 6. Předchozí verze SQL Serveru nejsou podporované.
Vytvoření přihlášení SQL z Microsoft Entra ID
Vytvořte přihlášení Microsoft Entra a udělte mu sysadmin roli.
Pokud chcete vytvořit přihlášení Microsoft Entra a přiřadit ho jako sysadmin, použijte následující příkaz Transact-SQL (T-SQL):
USE master;
CREATE LOGIN [login_name]
FROM EXTERNAL PROVIDER;
EXECUTE sp_addsrvrolemember
@loginame = 'login_name',
@rolename = 'sysadmin';
Pokud například chcete přidat přihlašovací jméno pro newuser@tenant.com, použijte tento příkaz:
USE master;
CREATE LOGIN [newuser@tenant.com]
FROM EXTERNAL PROVIDER;
EXECUTE sp_addsrvrolemember
@loginame = 'newuser@tenant.com',
@rolename = 'sysadmin';
Vytvoření distribuční databáze
K vytvoření distribuční databáze použijte sp_adddistributiondb .
Následuje ukázkový skript pro vytvoření distribuční databáze na distributoru:
EXECUTE 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;
Následující příklad vytvoří tabulku UIProperties v distribuční databázi a nastaví SnapshotFolder vlastnost tak, aby agent snímků věděl, kde zapisovat snímky replikace:
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))
)
EXECUTE sp_updateextendedproperty N'SnapshotFolder', N' C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER22\MSSQL\DATA', 'user', dbo, 'table', 'UIProperties';
ELSE
EXECUTE sp_addextendedproperty N'SnapshotFolder', N' C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER22\MSSQL\DATA', 'user', dbo, 'table', 'UIProperties';
Následující skript nakonfiguruje Vydavatele tak, aby používal databázi Distributor, a definuje přihlášení uživatele AD spolu s heslem, které se má použít pro replikaci:
EXECUTE 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';
Povolení replikace
Pomocí sp_replicationdboption povolte replikaci v databázi Publisheru, například testdbv následujícím příkladu:
EXECUTE sp_replicationdboption
@dbname = N'testdb',
@optname = N'publish',
@value = N'true';
Přidání publikace
K přidání publikace použijte sp_addpublication .
Můžete nakonfigurovat transakční nebo snímkovou replikaci.
Pomocí těchto kroků vytvořte transakční replikaci.
Nejprve nakonfigurujte agenta čtenáře protokolů:
USE [AdventureWorksDB];
EXECUTE [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;
Dále vytvořte transakční publikaci:
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'
Pak vytvořte snapshot agenta a uložte soubory snímků pro vydavatele pomocí přihlášení Microsoft Entra pro @publisher_login a definování hesla pro Publisher:
USE [AdventureWorksDB];
EXECUTE 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>';
Nakonec do publikace přidejte článek TestPub :
USE [AdventureWorksDB];
EXECUTE 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';
Vytvoření předplatného
Pomocí sp_addsubscription přidejte odběratele a potom pomocí sp_addpushsubscription_agent na Publisheru vytvořte push předplatné nebo sp_addpullsubscription_agent na odběrateli a vytvořte pull předplatné. Použijte přihlášení Microsoft Entra pro @subscriber_login.
Následující ukázkový skript přidá předplatné:
USE [testdb];
EXECUTE 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;
Následující ukázkový skript přidá agenta push předplatného na serveru Publisher:
EXECUTE 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';
Uložené procedury replikace
Následující parametry v těchto uložených procedurách replikace byly změněny v SQL Serveru 2022 (16.x) CU 6 pro podporu ověřování Microsoft Entra pro replikaci:
-
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
Následující hodnoty definují režimy zabezpečení pro tyto uložené procedury:
-
0určuje ověřování SQL Serveru. -
1určuje ověřování systému Windows. -
2určuje ověřování hesla Microsoft Entra počínaje SQL Serverem 2022 CU 6. -
3určuje integrované ověřování Microsoft Entra počínaje SQL Serverem 2022 CU 6. -
4určuje ověřování pomocí tokenu Microsoft Entra počínaje SQL Serverem 2022 CU 6.
Související obsah
- replikace SQL Serveru
- Ověřování Microsoft Entra pro SQL Server