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)
Bu makalede, Azure-Arc etkinleştirilmiş 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 için Toplu Güncelleştirme 6'da sunulmuştur ve Toplu Güncelleştirme 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ı. İnceleyin SQL Server için Microsoft Entra kimlik doğrulamasını ayarlama öğreticisi daha fazla bilgi edinmek için.
- 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 çoğaltmayı yalnızca Transact-SQL (T-SQL) ve çoğaltma saklı yordamlarını, SSMS v19.1 veya sonraki sürümlerdeki Çoğaltma Sihirbazı'nı veya Azure Data Studio'yu kullanarak 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
EXEC 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
EXEC 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:
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
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)))
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ş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:
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'
Çoğaltmayı etkinleştirme
sp_replicationdboption kullanarak şu örnekte olduğu gibi testdb, Publisher veritabanınızda çoğaltmayı etkinleştirin:
EXEC 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]
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
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]
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>'
Son olarak, makaleyi TestPub yayına ekleyin:
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'
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]
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şağıdaki örnek betik, Publisher'a bir push abonelik ajanı ekler.
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'
Çoğaltma saklı yordamları
Bu replikasyon saklı yordamlarındaki aşağıdaki parametreler, replikasyon için Microsoft Entra kimlik doğrulamasını desteklemek amacıyla SQL Server 2022 için 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:
- 0 , SQL Server Kimlik Doğrulamayı belirtir.
- 1 , Windows Kimlik Doğrulamayı belirtir.
- 2 , SQL Server 2022 CU 6 ile başlayan Microsoft Entra parola kimlik doğrulamasını belirtir.
- 3 , SQL Server 2022 CU 6 ile başlayan Microsoft Entra tümleşik kimlik doğrulamayı belirtir.
- 4 , Microsoft Entra belirteci ile kimlik doğrulamayı SQL Server 2022 CU 6'dan itibaren belirtir.
Sonraki Adımlar
Daha fazla bilgi edinmek için SQL Server Çoğaltma ve SQL Server için Microsoft Entra kimlik doğrulamasını gözden geçirin