Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir: SQL Server 2022 (16.x) ve sonraki sürümleri
Bu makalede, Azure Arc tarafından etkinleştirilen SQL Server için Microsoft Entra Id (eski adı Azure Active Directory) ile kimlik doğrulaması kullanarak İşlem ve Anlık Görüntü çoğaltmasını yapılandırma adımları sağlanır.
Genel Bakış
Çoğaltma için Microsoft Entra kimlik doğrulama desteği SQL Server 2022 (16.x) Toplu Güncelleştirme (CU) 6'da kullanıma sunulmuştur ve CU 12'de genel kullanıma sunulmuştur. Çoğaltma için Microsoft Entra kimlik doğrulamasını kullandığınızda, tek farklı adım ilk adımdır. Bir Microsoft Entra hesabı oluşturun ve sistem yöneticisi izinleri verin.
Bundan sonra, normalde yaptığınız gibi İşlem veya Anlık Görüntü çoğaltmasını yapılandırmak için çoğaltma saklı yordamlarında Microsoft Entra oturum açma bilgilerini kullanın.
Uyarı
SQL Server 2022 CU 6'dan başlayarak, 11561 oturum izleme bayrağını kullanarak çoğaltma için Microsoft Entra kimlik doğrulamasını devre dışı bırakın.
Önkoşullar
Microsoft Entra kimlik doğrulaması ile çoğaltmayı yapılandırmak için aşağıdaki önkoşulları karşılamanız gerekir:
- Sql Server 2022'nin Toplu Güncelleştirme 6'dan başlayarak Azure-Arc tarafından etkinleştirilmesini sağlayın.
- Çoğaltma topolojisindeki her sunucu için Microsoft Entra kimlik doğrulaması yapılandırıldı. Daha fazla bilgi edinmek için Uygulama kaydıyla SQL Server için Microsoft Entra kimlik doğrulamasını ayarlama öğreticisini inceleyin.
- SQL Server Management Studio'nun (SSMS) desteklenen bir sürümü.
- Yayımcıya ve aboneye bağlanan kullanıcı sysadmin sabit sunucu rolünün bir üyesidir.
- Bağlantı, güvenilen bir Sertifika Yetkilisi'nden (CA) veya otomatik olarak imzalanan bir sertifika kullanılarak şifrelenmelidir.
- Otomatik olarak imzalanan bir sertifika kullanılırsa, istemcinin SQL Server'a güvenmesi için bu sertifikanın istemci makinesine içeri aktarılması ve Güvenilen Sertifikalar listesine yüklenmesi gerekir. Çoğaltmayla çalışmadığından SQL Server Management Studio'da (SSMS) Sunucu sertifikasına güven seçeneği seçilerek bu gereksinim atlanamaz.
Sınırlamalar
Microsoft Entra kimlik doğrulaması ile çoğaltmanızı yapılandırmanın şu anda aşağıdaki sınırlamaları vardır:
- Şu anda yalnızca Transact-SQL (T-SQL) ve çoğaltma saklı yordamlarını ve SSMS v19.1 veya sonraki sürümlerde Çoğaltma Sihirbazı'nı kullanarak çoğaltmayı yapılandırmak mümkündür. Şu anda RMO çoğaltma nesnelerini veya diğer komut satırı dillerini kullanarak çoğaltmayı yapılandırmak mümkün değildir.
- Çoğaltma topolojisindeki her sunucu en az SQL Server 2022 CU 6'da olmalıdır. SQL Server'ın önceki sürümleri desteklenmez.
Microsoft Entra Id'den SQL oturum açma bilgileri oluşturma
Microsoft Entra oturum açma bilgilerini oluşturun ve sysadmin rolünü verin.
"Microsoft Entra" oturum açma bilgilerini oluşturmak ve olarak sysadmin atamak için aşağıdaki Transact-SQL (T-SQL) komutunu kullanın.
USE master;
CREATE LOGIN [login_name]
FROM EXTERNAL PROVIDER;
EXECUTE sp_addsrvrolemember
@loginame = 'login_name',
@rolename = 'sysadmin';
Örneğin, için oturum açma adını eklemek için newuser@tenant.comşu komutu kullanın:
USE master;
CREATE LOGIN [newuser@tenant.com]
FROM EXTERNAL PROVIDER;
EXECUTE sp_addsrvrolemember
@loginame = 'newuser@tenant.com',
@rolename = 'sysadmin';
Dağıtım veritabanı oluşturma
Dağıtım veritabanını oluşturmak için sp_adddistributiondb kullanın.
Dağıtımcınızda dağıtım veritabanınızı oluşturmak için örnek bir betik aşağıda verilmiştir:
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;
Aşağıdaki örnek, Dağıtım veritabanında tabloyu UIProperties oluşturur ve anlık görüntü aracısının çoğaltma anlık görüntülerini nereye yazacağını bilmesi için SnapshotFolder özelliğini ayarlar.
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';
Aşağıdaki betik Yayımcı'yı Dağıtımcı veritabanını kullanacak şekilde yapılandırarak AD kullanıcı oturum açma bilgilerini ve çoğaltma için kullanılacak parolayı tanımlar:
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';
Çoğaltmayı etkinleştirme
sp_replicationdboption kullanarak şu örnekte olduğu gibi testdb, Publisher veritabanınızda çoğaltmayı etkinleştirin:
EXECUTE sp_replicationdboption
@dbname = N'testdb',
@optname = N'publish',
@value = N'true';
Yayını ekle
Yayını eklemek için sp_addpublication kullanın.
İşlem veya anlık görüntü çoğaltmayı yapılandırabilirsiniz.
İşlemsel çoğaltma oluşturmak için şu adımları izleyin.
İlk olarak, günlük okuyucu aracısını yapılandırın:
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;
Ardından işlem yayınını oluşturun:
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'
Ardından Snapshot Agent'ı oluşturun ve Yayımcı için Microsoft Entra oturum açma bilgilerini kullanarak ve Yayımcı için @publisher_login bir parola tanımlayarak anlık görüntü dosyalarını depolayın:
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>';
Son olarak, makaleyi TestPub yayına ekleyin:
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';
Abonelik Oluştur
Abonenizi eklemek için sp_addsubscription kullanın ve ardından yayımcıda sp_addpushsubscription_agent kullanarak anında iletme aboneliği oluşturun veya abone üzerinde sp_addpullsubscription_agent kullanarak çekme aboneliği oluşturun. için @subscriber_loginMicrosoft Entra oturum açma bilgilerini kullanın.
Aşağıdaki örnek betik aboneliği ekler:
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;
Aşağıdaki örnek betik, Publisher'a bir push abonelik ajanı ekler.
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';
Çoğaltma saklı yordamları
Bu çoğaltma saklı yordamlarındaki aşağıdaki parametreler, çoğaltma için Microsoft Entra kimlik doğrulamasını desteklemek üzere SQL Server 2022 (16.x) CU 6'da değiştirildi:
-
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şağıdaki değerler, bu saklı yordamlar için güvenlik modlarını tanımlar:
-
0SQL Server Kimlik Doğrulama'sı belirtir. -
1, Windows Kimlik Doğrulaması belirtir. -
2SQL Server 2022 CU 6 ile başlayan Microsoft Entra parola kimlik doğrulamasını belirtir. -
3SQL Server 2022 CU 6 ile başlayan Microsoft Entra tümleşik kimlik doğrulamayı belirtir. -
4SQL Server 2022 CU 6 ile başlayan Microsoft Entra belirteci kimlik doğrulamayı belirtir.
İlgili içerik
- SQL Server Eşleme
- Microsoft Entra kimlik doğrulaması , SQL Server için