Aracılığıyla paylaş


Adlandırılmış çoğaltmalar için hiper ölçek için yalıtılmış erişimi yapılandırma

Şunlar için geçerlidir: Azure SQL Veritabanı

Bu makalede, birincil çoğaltmaya veya diğer adlandırılmış çoğaltmalara erişim vermeden Azure SQL Veritabanı Hiper Ölçek adlı çoğaltmaya erişim verme yordamı açıklanmaktadır. Bu senaryo adlandırılmış çoğaltmanın kaynak ve güvenlik yalıtımına olanak tanır; adlandırılmış çoğaltma kendi işlem düğümü kullanılarak çalıştırılacağından ve Azure SQL Hiper Ölçek veritabanına yalıtılmış salt okunur erişim gerektiğinde kullanışlıdır. Yalıtılmış, bu bağlamda, CPU ve belleğin birincil ve adlandırılmış çoğaltma arasında paylaşılmaması, adlandırılmış çoğaltmada çalıştırılan sorguların birincil çoğaltmanın veya diğer çoğaltmaların işlem kaynaklarını kullanmadığı ve adlandırılmış çoğaltmaya erişen sorumluların birincil çoğaltma dahil olmak üzere diğer çoğaltmalara erişemeyeceği anlamına gelir.

Not

Microsoft Entra Id daha önce Azure Active Directory (Azure AD) olarak biliniyordu.

Birincil sunucuda oturum açma oluşturma

master Birincil veritabanını barındıran mantıksal sunucudaki veritabanında, yeni bir oturum açma bilgisi oluşturmak için aşağıdakileri yürütebilirsiniz.

Kendi güçlü ve benzersiz parolanızı kullanın, yerine strong_password_here güçlü parolayı kullanın.

CREATE LOGIN [third-party-login] WITH PASSWORD = 'strong_password_here';

Sistem görünümünden oluşturulan oturum açma bilgileri sys.sql_logins için SID onaltılık değerini alın:

SELECT SID FROM sys.sql_logins WHERE name = 'third-party-login';

Oturum açmayı devre dışı bırakın. Bu, bu oturum açma işleminin birincil çoğaltmayı barındıran sunucudaki herhangi bir veritabanına erişmesini engeller.

ALTER LOGIN [third-party-login] DISABLE;

Birincil okuma-yazma veritabanında kullanıcı oluşturma

Oturum açma bilgileri oluşturulduktan sonra, veritabanınızın birincil okuma-yazma çoğaltmasına bağlanın, örneğin WideWorldImporters (burada geri yüklemek için örnek bir betik bulabilirsiniz: Azure SQL'de Veritabanını Geri Yükleme) ve bu oturum açma için bir veritabanı kullanıcısı oluşturun:

CREATE USER [third-party-user] FROM LOGIN [third-party-login];

İsteğe bağlı bir adım olarak, veritabanı kullanıcısı oluşturulduktan sonra, oturum açmanın herhangi bir şekilde yeniden etkinleştirilmesi konusunda endişeler varsa önceki adımda oluşturulan sunucu oturum açma bilgilerini bırakabilirsiniz. master Birincil veritabanını barındıran mantıksal sunucudaki veritabanına bağlanın ve aşağıdaki örnek betikleri yürütün:

DROP LOGIN [third-party-login];

Farklı bir mantıksal sunucuda adlandırılmış çoğaltma oluşturma

Adlandırılmış çoğaltmaya erişimi yalıtmak için kullanılacak yeni bir Azure SQL mantıksal sunucusu oluşturun. Azure SQL Veritabanı'de sunucuları ve tek veritabanlarını oluşturma ve yönetme başlığında sağlanan yönergeleri izleyin. Adlandırılmış çoğaltma oluşturmak için bu sunucunun birincil çoğaltmayı barındıran sunucuyla aynı Azure bölgesinde olması gerekir.

Aşağıdaki örnekte değerini güçlü parolanızla değiştirin strong_password_here . Örneğin, Azure CLI kullanarak:

az sql server create -g MyResourceGroup -n MyNamedReplicaServer -l MyLocation --admin-user MyAdminUser --admin-password strong_password_here

Ardından, bu sunucudaki birincil veritabanı için adlandırılmış bir çoğaltma oluşturun. Örneğin, Azure CLI kullanarak:

az sql db replica create -g MyResourceGroup -n WideWorldImporters -s MyPrimaryServer --secondary-type Named --partner-database WideWorldImporters_NR --partner-server MyNamedReplicaServer

Adlandırılmış çoğaltma sunucusunda oturum açma oluşturma

master Önceki adımda oluşturulan adlandırılmış çoğaltmayı barındıran mantıksal sunucudaki veritabanına bağlanın. değerini güçlü parolanızla değiştirin strong_password_here . Birincil çoğaltmadan alınan SID'yi kullanarak oturum açmayı ekleyin:

CREATE LOGIN [third-party-login] WITH PASSWORD = 'strong_password_here', sid = 0x0...1234;

Bu noktada, veya bob@contoso.com kullanan third-party-login kullanıcılar ve uygulamalar adlandırılmış çoğaltmaya bağlanabilir, ancak birincil çoğaltmaya bağlanamayabilir.

Veritabanı içinde nesne düzeyinde izinler verme

Oturum açma kimlik doğrulamasını açıklandığı gibi ayarladıktan sonra, yetkilendirmeyi veya veritabanındaki nesne düzeyinde izinleri yönetmek için normal GRANTve DENY REVOKE deyimlerini kullanabilirsiniz. Bu deyimlerde, veritabanında oluşturduğunuz kullanıcının adına veya bu kullanıcıyı üye olarak içeren bir veritabanı rolüne başvurun. Bu komutları birincil çoğaltmada yürütmeyi unutmayın. Değişiklikler tüm ikincil çoğaltmalara yayılır, ancak bunlar yalnızca sunucu düzeyinde oturum açmanın oluşturulduğu adlandırılmış çoğaltmada etkili olur.

Yeni oluşturulan bir kullanıcının varsayılan olarak en az sayıda izni olduğunu unutmayın (örneğin, hiçbir kullanıcı tablosuna erişemez). Bir tablodaki verilere izin third-party-user vermek veya bob@contoso.com verileri okumak istiyorsanız, açıkça şu izni vermeniz SELECT gerekir:

GRANT SELECT ON [Application].[Cities] to [third-party-user];

Her tabloda ayrı ayrı izin vermenin alternatifi olarak, kullanıcıyı veritabanı rolüne db_datareaders ekleyerek tüm tablolara okuma erişimine izin verebilir veya şemalardaki tüm mevcut ve yeni tablolara erişim izni vermek için şemaları kullanabilirsiniz.

Erişimi test et

Herhangi bir istemci aracını kullanarak bu yapılandırmayı test edebilir ve birincil ve adlandırılmış çoğaltmaya bağlanmayı deneyin. Örneğin, kullanarak sqlcmd, kullanıcıyı kullanarak birincil çoğaltmaya bağlanmayı third-party-login deneyebilirsiniz. değerini güçlü parolanızla değiştirin strong_password_here .

sqlcmd -S MyPrimaryServer.database.windows.net -U third-party-login -P strong_password_here -d WideWorldImporters

Kullanıcının sunucuya bağlanmasına izin verilmediğinden bu hatayla sonuçlanır:

Sqlcmd: Error: Microsoft ODBC Driver 13 for SQL Server : Login failed for user 'third-party-login'. Reason: The account is disabled.

Adlandırılmış çoğaltmaya bağlanma girişimi başarılı olur. değerini güçlü parolanızla değiştirin strong_password_here .

sqlcmd -S MyNamedReplicaServer.database.windows.net -U third-party-login -P strong_password_here -d WideWorldImporters_NR

Hiçbir hata döndürülmüyor ve adlandırılmış çoğaltmada nesne düzeyinde izin verilen izinler tarafından izin verilen sorgular yürütülebilir.