Aracılığıyla paylaş


Azure Synapse Analytics'te SQL Kimlik Doğrulaması

Azure Synapse Analytics'in kaynak tüketiminizi denetlemenizi sağlayan iki SQL form faktörü vardır. Bu makalede, iki form faktörlerinin kullanıcı kimlik doğrulamasını nasıl denetleyacağı açıklanmaktadır.

Synapse SQL'e yetkilendirmek için iki yetkilendirme türü kullanabilirsiniz:

  • Microsoft Entra yetkilendirmesi
  • SQL yetkilendirmesi

SQL yetkilendirmesi, eski uygulamaların Azure Synapse SQL'e tanıdık bir şekilde bağlanmasını sağlar. Ancak Microsoft Entra kimlik doğrulaması, SQL havuzları gibi Azure Synapse kaynaklarına erişimi merkezi olarak yönetmenizi sağlar. Azure Synapse Analytics, çalışma alanı oluşturma sırasında ve sonrasında SQL kimlik doğrulaması gibi yerel kimlik doğrulamasını devre dışı bırakmayı destekler. Devre dışı bırakıldıktan sonra, yerel kimlik doğrulaması yetkili kullanıcılar tarafından herhangi bir zamanda etkinleştirilebilir. Microsoft Entra-only kimlik doğrulaması hakkında daha fazla bilgi için bkz . Azure Synapse Analytics'te yerel kimlik doğrulamasını devre dışı bırakma.

Yönetici istrative hesapları

Yönetici işlevi gösteren iki yönetim hesabı (SQL yöneticisi kullanıcı adı ve SQL Active Directory yöneticisi) vardır. SQL havuzlarınızın bu yönetici hesaplarını tanımlamak için Azure portalını açın ve Synapse çalışma alanınızın Özellikler sekmesine gidin.

SQL Server Admins

  • SQL yöneticisi kullanıcı adı

    Azure Synapse Analytics oluşturduğunuzda, sunucu yöneticisi oturum açma bilgilerini adlandırmanız gerekir. SQL server bu hesabı veritabanında oturum açma olarak master oluşturur. Bu hesap SQL Server kimlik doğrulaması (kullanıcı adı ve parola) kullanarak bağlanır. Bu hesaplardan yalnızca biri mevcut olabilir.

  • SQL Active Directory yöneticisi

    Bireysel veya güvenlik grubu hesabı olan bir Microsoft Entra hesabı da yönetici olarak yapılandırılabilir. Bir Microsoft Entra yöneticisi yapılandırmak isteğe bağlıdır, ancak Synapse SQL'e bağlanmak için Microsoft Entra hesaplarını kullanmak istiyorsanız bir Microsoft Entra yöneticisinin yapılandırılması gerekir .

    • Microsoft Entra yönetici hesabı ayrılmış SQL havuzlarına erişimi denetlerken Synapse RBAC rolleri sunucusuz havuzlara erişimi denetlemek için kullanılabilir; örneğin Synapse Yönetici istrator ve Synapse SQL Yönetici istrator rolüyle.

SQL yöneticisi kullanıcı adı ve SQL Active Directory yönetici hesapları aşağıdaki özelliklere sahiptir:

  • Sunucudaki herhangi bir SQL Veritabanı otomatik olarak bağlanabilen tek hesaplardır. (Diğer hesapların, bir kullanıcı veritabanına bağlanabilmek için veritabanının sahibi olmaları veya kullanıcı veritabanında kullanıcı hesabına sahip olmaları gerekir.)
  • Bu hesaplar kullanıcı veritabanlarına dbo kullanıcısı olarak girer ve kullanıcı veritabanlarında tüm izinlere sahip olur. (Kullanıcı veritabanının sahibi de veritabanına dbo kullanıcısı olarak girer.)
  • Veritabanına kullanıcı olarak girmeyin masterdbo ve veritabanında sınırlı izinlere master sahip olun.
  • SQL Veritabanı'de bulunmayan standart SQL Server sysadmin sabit sunucu rolünün üyesi değildir.
  • Veritabanlarını, oturum açma bilgilerini, veritabanındaki master kullanıcıları ve sunucu düzeyinde IP güvenlik duvarı kurallarını oluşturabilir, değiştirebilir ve bırakabilir.
  • ve loginmanager rollerine dbmanager üye ekleyebilir ve kaldırabilir.
  • Sistem tablosunu görüntüleyebilir sys.sql_logins .

Dekont

Bir kullanıcı Active Directory yöneticisi ve Synapse Yönetici istrator olarak yapılandırıldıysa ve Active Directory yönetici rolünden kaldırıldıysa, kullanıcı Synapse'deki ayrılmış SQL havuzlarına erişimi kaybeder. Ayrılmış SQL havuzlarına yeniden erişim kazanmak için bunların kaldırılması ve synapse Yönetici istrator rolüne eklenmesi gerekir.

Sunucusuz SQL havuzuna erişimi olan kullanıcıları yönetmek için aşağıdaki yönergeleri kullanabilirsiniz.

Sunucusuz SQL havuzunda oturum açmak için aşağıdaki söz dizimini kullanın:

CREATE LOGIN Mary WITH PASSWORD = '<strong_password>';
-- or
CREATE LOGIN [Mary@domainname.net] FROM EXTERNAL PROVIDER;

Oturum açma bilgileri mevcut olduğunda sunucusuz SQL havuzu uç noktası içindeki tek tek veritabanlarında kullanıcılar oluşturabilir ve bu kullanıcılara gerekli izinleri verilmektedir. Kullanıcı oluşturmak için aşağıdaki söz dizimini kullanabilirsiniz:

CREATE USER Mary FROM LOGIN Mary;
-- or
CREATE USER Mary FROM LOGIN Mary@domainname.net;
-- or
CREATE USER [mike@contoso.com] FROM EXTERNAL PROVIDER;

Oturum açma ve kullanıcı oluşturulduktan sonra, hak vermek için normal SQL Server söz dizimini kullanabilirsiniz.

Yönetici olmayan kullanıcılar

Genel olarak, yönetici olmayan hesapların veritabanına erişmesi master gerekmez. CREATE USER (Transact-SQL) deyimini kullanarak veritabanı düzeyinde bağımsız veritabanı kullanıcıları oluşturun.

Kullanıcı, Microsoft Entra kimlik doğrulaması içeren veritabanı kullanıcısı (ortamınızı Microsoft Entra kimlik doğrulaması için yapılandırdıysanız) veya SQL Server kimlik doğrulaması içeren bir veritabanı kullanıcısı veya SQL Server kimlik doğrulaması oturum açma bilgilerini temel alan bir SQL Server kimlik doğrulaması kullanıcısı (önceki adımda oluşturulmuştur) olabilir.

Kullanıcı oluşturmak için veritabanına bağlanın ve aşağıdaki örneklere benzer deyimleri çalıştırın:

CREATE USER Mary FROM LOGIN Mary;
CREATE USER [mike@contoso.com] FROM EXTERNAL PROVIDER;

Başlangıçta veritabanı yöneticilerinden yalnızca biri veya veritabanının sahibi kullanıcı oluşturabilir. Daha fazla kullanıcıya yeni kullanıcı oluşturma yetkisi vermek için şunun gibi bir deyim kullanarak ALTER ANY USER izni verin:

GRANT ALTER ANY USER TO Mary;

Ek kullanıcılara veritabanı hakkında tam denetim vermek için, onları db_owner sabit veritabanı rolünün bir üyesi yapın.

Azure SQL Veritabanı veya synapse sunucusuz içinde deyimini ALTER ROLE kullanın.

ALTER ROLE db_owner ADD MEMBER Mary;

Ayrılmış SQL havuzunda EXEC sp_addrolemember kullanın.

EXEC sp_addrolemember 'db_owner', 'Mary';

Dekont

Sunucu oturum açma bilgilerini temel alan bir veritabanı kullanıcısı oluşturmanın yaygın nedenlerinden biri, birden çok veritabanına erişmesi gereken kullanıcılardır. Bağımsız veritabanı kullanıcıları tek tek varlıklar olduğundan, her veritabanı kendi kullanıcısını ve kendi parolasını korur. Bu, kullanıcının her veritabanı için her parolayı hatırlaması gerektiğinden ek yüke neden olabilir ve birçok veritabanı için birden çok parolayı değiştirmek zorundayken istenmeyen duruma gelebilir.

Gruplar ve roller

Verimli erişim yönetimi için bireysel kullanıcılar yerine gruplara ve rollere atanan izinler kullanılır.

  • Microsoft Entra kimlik doğrulamayı kullanırken, Microsoft Entra kullanıcılarını bir Microsoft Entra grubuna yerleştirin. Grup için bir bağımsız veritabanı kullanıcısı oluşturun. Bir veya daha fazla veritabanı kullanıcılarını bir veritabanı rolüne ekleyin ve izinleri veritabanı rolüne atayın.

  • SQL Server kimlik doğrulamasını kullanırken veritabanında bağımsız veritabanı kullanıcılarını oluşturun. Bir veya daha fazla veritabanı kullanıcılarını bir veritabanı rolüne ekleyin ve izinleri veritabanı rolüne atayın.

Veritabanı rolleri db_owner, db_ddladmin, db_datawriter, db_datareader, db_denydatawriter ve db_denydatareader gibi yerleşik roller olabilir. Birkaç kullanıcıya tam izin vermek için genelde db_owner kullanılır. Diğer sabit veritabanı rolleri, geliştirme aşamasında basit bir veritabanını hızlı bir şekilde kullanıma almak için kullanışlıdır ancak çoğu üretim veritabanı için önerilmez.

Örneğin db_datareader sabit veritabanı rolü, veritabanındaki tüm tablolara okuma izni verir ve bu durum genelde ihtiyaç duyulandan fazlasıdır.

Create ROLE deyimini kullanarak kendi kullanıcı tanımlı veritabanı rollerinizi oluşturmak ve her role iş gereksinimi için gereken en düşük izinleri dikkatli bir şekilde vermek çok daha iyidir. Birden fazla rolün üyesi olan kullanıcılar, tüm rollerin izinlerine sahip olur.

İzinler

SQL Veritabanında ayrı ayrı verilebilen veya reddedilebilen 100'den fazla izin vardır. Bu izinlerin çoğu iç içe geçmiş haldedir. Örneğin, bir şemada için verilen UPDATE izni, o şema içindeki tüm tablolar için UPDATE iznini de içerir. Çoğu izin sisteminde olduğu gibi bir iznin reddedilmesi, aynı iznin verilme durumunu geçersiz kılar.

İç içe geçmiş yapısı ve izin sayısı nedeniyle, veritabanınızı doğru şekilde korumak için uygun bir izin sistemi tasarlamak uzun ve dikkatli bir çalışma gerektirebilir.

İzinler (Veritabanı Altyapısı) bölümündeki izin listesiyle başlayın ve veritabanı altyapısı izinlerinin poster boyutu grafiğini gözden geçirin.

Dikkat edilmesi gerekenler ve kısıtlamalar

SQL Veritabanı oturum açma bilgilerini ve kullanıcıları yönetirken aşağıdaki noktaları göz önünde bulundurun:

  • Deyimleri yürütürken CREATE/ALTER/DROP DATABASE veritabanına bağlı master olmanız gerekir.
  • Sunucu yöneticisi oturum açma bilgilerine karşılık gelen veritabanı kullanıcısı değiştirilemez veya bırakılamaz.
  • Microsoft Entra-only kimlik doğrulaması etkinleştirilirse sunucu yöneticisi devre dışı bırakılır.
  • Sunucu yöneticisi oturum açma bilgilerinin varsayılan dili ABD-İngilizce olarak belirlenmiştir.
  • Yalnızca yöneticiler (Sunucu yöneticisi oturum açma bilgileri veya Microsoft Entra yöneticisi) ve veritabanındaki dbmanager veritabanı rolünün master üyeleri ve DROP DATABASE deyimlerini yürütme CREATE DATABASE iznine sahiptir.
  • Deyimleri yürütürken CREATE/ALTER/DROP LOGIN veritabanına bağlı master olmanız gerekir. Ancak oturum açma bilgilerini kullanmak önerilmez. Bunun yerine bağımsız veritabanı kullanıcılarını kullanmanız önerilir. Daha fazla bilgi için bkz. Bağımsız Veritabanı Kullanıcıları - Veritabanınızı Taşınabilir Hale Getirme.
  • Bir kullanıcı veritabanına bağlanmak için bağlantı dizesinde veritabanının adını belirtmeniz gerekir.
  • Yalnızca sunucu düzeyinde asıl oturum açma bilgileri ve veritabanındaki loginmanager veritabanı rolünün master üyeleri , ALTER LOGINve DROP LOGIN deyimlerini yürütme CREATE LOGINiznine sahiptir.
  • ve deyimlerini bir ADO.NET uygulamasında yürütürken CREATE/ALTER/DROP LOGINCREATE/ALTER/DROP DATABASE parametreli komutların kullanılmasına izin verilmez. Daha fazla bilgi için bkz. Komutlar ve Parametreler.
  • CREATE USER deyimini FOR/FROM LOGIN seçeneğiyle yürütürken bunun bir Transact-SQL toplu işindeki tek deyim olması gerekir.
  • ALTER USER deyimini WITH LOGIN seçeneğiyle yürütürken bunun bir Transact-SQL toplu işindeki tek deyim olması gerekir.
  • CREATE/ALTER/DROP LOGIN ve CREATE/ALTER/DROP USER deyimleri, Azure Synapse çalışma alanı için Microsoft Entra-only kimlik doğrulaması etkinleştirildiğinde desteklenmez.
  • Bir kullanıcıda CREATE/ALTER/DROP işlemini gerçekleştirmek için veritabanında ALTER ANY USER izni gerekir.
  • Veritabanı rolünün sahibi bu veritabanı rolüne başka bir veritabanı kullanıcısı eklemeye veya bu rolden başka bir veritabanı kullanıcısını kaldırmaya çalıştığında şu hata oluşabilir: Kullanıcı veya rol 'Ad' bu veritabanında yok. Kullanıcı sahibi tarafından görülemediğinden bu hata oluşur. Bu sorunu çözmek için rol sahibine kullanıcı için VIEW DEFINITION iznini verin.

Sonraki adımlar

Daha fazla bilgi için bkz. Bağımsız Veritabanı Kullanıcıları - Veritabanınızı Taşınabilir Hale Getirme.