Aracılığıyla paylaş


Azure SQL ile Microsoft Entra kimlik doğrulamayı yapılandırma ve yönetme

Applies to:Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics

Bu makalede, Azure SQL Database, Azure SQL Managed Instance ve için Microsoft Entra ID nasıl kullanılacağı gösterilmektedir>Azure Synapse Analytics.

Not

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

Alternatif olarak, Microsoft Entra kimlik doğrulamasını SQL Server on Azure Virtual Machines için yapılandırabilirsiniz.

Önkoşullar

Azure SQL kaynağınızla Microsoft Entra kimlik doğrulamasını kullanmak için aşağıdaki önkoşullara ihtiyacınız vardır:

Microsoft Entra tenant oluşturma ve yükleme

Azure SQL kaynağınız için Microsoft Entra kimlik doğrulamasını yapılandırabilmeniz için önce bir Microsoft Entra kiracı oluşturmanız ve bunu kullanıcılar ve gruplarla doldurmanız gerekir. Microsoft Entra kiracıları tamamen Azure içinde yönetilebilir veya şirket içi Active Directory Domain Hizmeti federasyonu için kullanılabilir.

Daha fazla bilgi için bkz.

Microsoft Entra yöneticisini ayarlama

Kaynağınızla Microsoft Entra kimlik doğrulamasını kullanmak için Microsoft Entra yöneticisinin ayarlanmış olması gerekir. Kavramsal olarak adımlar Azure SQL Database, Azure Synapse Analytics ve Azure SQL Managed Instance için aynı olsa da, bu bölümde ürün başına yapılacak farklı API'ler ve portal deneyimleri ayrıntılı olarak açıklanmaktadır.

Microsoft Entra yöneticisi, Azure SQL kaynağı oluşturulduğunda da yapılandırılabilir. Microsoft Entra yöneticisi zaten yapılandırılmışsa bu bölümü atlayın.

Azure SQL Database ve Azure Synapse Analytics

Microsoft Entra yöneticisinin ayarlanması, Azure SQL Database ve Azure Synapse Analytics için Logical sunucunuz için Microsoft Entra kimlik doğrulamasını etkinleştirir. Azure portalı, PowerShell, Azure CLI veya REST API'lerini kullanarak sunucunuz için Microsoft Entra yöneticisi ayarlayabilirsiniz.

Azure portalında logical server adını bulabilirsiniz

  • Azure SQL Database Overview sayfasındaki sunucu adı alanında.
  • Azure Synapse Analytics'daki tek başına ayrılmış SQL havuzunuzun Overview sayfasındaki sunucu adı alanında.
  • Azure Synapse Analytics çalışma alanınızdaki Overview sayfasında ilgili SQL uç noktasında.

Azure portalında mantıksal sunucunuzun Microsoft Entra yöneticisini ayarlamak için şu adımları izleyin:

  1. Azure portal Directories + abonelikler bölmesindeGeçerli dizin olarak Azure SQL kaynağınızı içeren dizini seçin.

  2. SQL sunucularını arayın ve veritabanı kaynağınızın mantıksal sunucusunu seçerek SQL server bölmesini açın.

    SQL sunucularını arama ve seçme adımlarını gösteren ekran görüntüsü.

  3. Mantıksal sunucunuzun SQL sunucusu bölmesinde, Settings altındaki Microsoft Entra ID'i seçerek Microsoft Entra ID bölmesini açın.

  4. Microsoft Entra ID bölmesinde, Yönetici ayarla seçeneğini belirleyin ve Microsoft Entra ID bölmesini açın.

    Screenshot SQL sunucuları için Microsoft Entra yöneticisini ayarlama seçeneğini gösterir.

  5. Microsoft Entra ID bölmesi geçerli dizininizdeki tüm kullanıcıları, grupları ve uygulamaları gösterir ve ad, diğer ad veya kimliğe göre arama yapmanıza olanak tanır. Microsoft Entra yöneticiniz için istediğiniz kimliği bulun ve seçin, ardından bölmeyi kapatmak için Select öğesini seçin.

  6. Mantıksal sunucunuzun Microsoft Entra ID sayfasının üst kısmında Kaydet'ı seçin.

    Ekran görüntüsü bir Microsoft Entra yöneticisini kaydetme seçeneğini gösterir.

    Object ID, Microsoft Entra kullanıcıların ve grupların yönetici adının yanında görüntülenir. Uygulamalar (hizmet sorumluları) için Uygulama Kimliği görüntülenir.

Yöneticiyi değiştirme işlemi birkaç dakika sürebilir. Ardından yeni yönetici Microsoft Entra admin alanında görünür.

Yöneticiyi kaldırmak için, Microsoft Entra ID sayfasının üst kısmından Remove admin öğesini ve ardından Kaydet'yi seçin. Microsoft Entra yöneticisinin kaldırılması, mantıksal sunucunuz için Microsoft Entra kimlik doğrulamasını devre dışı bırakır.

Not

Microsoft Entra yöneticisi, sunucunun master veritabanında kullanıcı (veritabanı sorumlusu) olarak depolanır. Veritabanı asıl adlarının benzersiz olması gerektiğinden, yöneticinin görünen adı sunucunun master veritabanındaki herhangi bir kullanıcının adıyla aynı olamaz. Zaten mevcut olan bir kullanıcı adı varsa, Microsoft Entra yönetici kurulumu başarısız olur ve adın zaten kullanımda olduğunu belirterek geri alınır.

Azure SQL Managed Instance

Microsoft Entra yöneticisinin ayarlanması, Azure SQL Managed Instance için Microsoft Entra kimlik doğrulamasını etkinleştirir. Azure portalı, PowerShell, Azure CLI veya REST API'lerini kullanarak SQL yönetilen örneğiniz için Microsoft Entra yöneticisi ayarlayabilirsiniz.

Azure portalını kullanarak SQL yönetilen örneğinize Microsoft Entra ID okuma izinleri vermek için Gizli Rol Yöneticisi olarak oturum açın ve şu adımları izleyin:

  1. Azure portalında sağ üst köşede hesabınızı seçin ve ardından Switch dizinleri'i seçerek hangi dizinin Current dizininiz olduğunu onaylayın. Gerekirse dizinleri değiştirin.

    Dizinizi değiştirebileceğiniz yeri gösteren Azure portalı ekran görüntüsü.

  2. Azure portalı Dizinler + Abonelikler bölmesinde, yönetilen örneğinizi içeren dizini Geçerli dizin olarak seçin.

  3. SQL yönetilen örneklerini arayın ve ardından yönetilen örneğinizi seçerek SQL yönetilen örneği bölmesini açın. Ardından Settings altındaki Microsoft Entra ID öğesini seçerek örneğinizin Microsoft Entra ID bölmesini açın.

     Seçili SQL yönetilen örneği için açık Microsoft Entra yönetici sayfasını gösteren Azure portalının ekran görüntüsü.

  4. Microsoft Entra admin bölmesinde, gezinti çubuğundan Set admin öğesini seçerek Microsoft Entra ID bölmesini açın.

     Seçili SQL yönetilen örneği için Microsoft Entra yönetici sayfasında Yönetici ayarla komutunun vurgulandığı ekran görüntüsü.

  5. Microsoft Entra ID bölmesinde kullanıcı arayın, yönetici olmak için kullanıcı veya grubun yanındaki kutuyu işaretleyin ve ardından Seç tuşlarına basarak bölmeyi kapatın ve yönetilen örneğinizin Microsoft Entra admin sayfasına dönün.

    Microsoft Entra ID bölmesi geçerli dizininizdeki tüm üyeleri ve grupları gösterir. Gri renkteki kullanıcılar veya gruplar Microsoft Entra yöneticileri olarak desteklenmediğinden seçilemiyor. Yönetici olarak atamak istediğiniz kimliği seçin.

  6. yönetilen örneğinizin Microsoft Entra admin sayfasının gezinti çubuğundan Microsoft Entra yöneticinizi onaylamak için Save öğesini seçin.

     Yöneticiyi ayarla ve Yöneticiyi kaldır düğmelerinin yanındaki üst satırda Kaydet düğmesi bulunan Microsoft Entra yönetici sayfasının ekran görüntüsü.

    Yönetici değiştirme işlemi tamamlandıktan sonra, yeni yönetici Microsoft Entra yönetici alanında görünür.

    Object ID, Microsoft Entra kullanıcıların ve grupların yönetici adının yanında görüntülenir. Uygulamalar (hizmet sorumluları) için Uygulama Kimliği görüntülenir.

İpucu

Yöneticiyi kaldırmak için, Microsoft Entra ID sayfasının üst kısmındaki Save admin öğesini ve ardından Kaydet'i seçin.

Microsoft Graph izinlerini atama

SQL Managed Instance, güvenlik grubu üyeliği ve yeni kullanıcı oluşturma aracılığıyla bağlanan kullanıcıları yetkilendirme gibi senaryolarda Microsoft Entra ID okumak için izinlere ihtiyaç duyar. Microsoft Entra kimlik doğrulamasının çalışması için yönetilen örnek kimliğini Directory Readers rolüne atamanız gerekir. Bunu Azure portalını veya PowerShell'i kullanarak yapabilirsiniz.

Bazı işlemler için Azure SQL Database ve Azure Synapse Analytics Microsoft Graph izinleri bölümünde açıklanan Microsoft Graph sorgulama izinleri de gerektirir. Azure SQL Database ve Azure Synapse Analytics bu senaryolar için ayrıntılı Graf izinlerini desteklerken, SQL Managed Instance Directory Readers rolünü gerektirir. Ayrıntılı izinler ve bunların atamaları, Microsoft Entra kullanıcıları oluşturmak için hizmet sorumlularının etkinleştirilmesi kısmında ayrıntılı olarak açıklanmıştır.

Önemli

Azure SQL Database ve SQL Managed Instance Microsoft Graph erişim için farklı izin modelleri kullanın:

  • Azure SQL Database ve Azure Synapse Analytics: Doğrudan sunucu kimliğine atanan ayrıntılı Microsoft Graph API izinlerini (örneğin, User.Read.All, GroupMember.Read.All ve Application.Read.All) destekleyin. Bu yaklaşım en az ayrıcalık ilkesini izler ve önerilir. Adım adım yönergeler için bkz. Hizmet sorumlularını Microsoft Entra kullanıcıları oluşturmak için etkinleştirin. Dizin Okuyucuları rolü daha geniş bir alternatif olarak da kullanılabilir.
  • SQL Managed Instance: Örnek kimliğine atanmış Directory Readers rolü veya eşdeğer ince ayrıntılı Microsoft Graph izinleri gerektirir. Azure portalı, Microsoft Entra ID sayfasında Dizin Okuyucuları rolünü vermenizi isteyen kullanışlı bir başlık sağlar. Dizin Okuyucuları rolü bölümündeki adımları izleyin.

Azure SQL Database yapılandırıyorsanız, temel Microsoft Entra yönetici kurulumu için Dizin Okuyucuları rolünü atamanız gerekmez. Bunun yerine, Azure SQL için Microsoft Entra'da Yönetilen kimlikler bölümünde açıklandığı gibi sunucu kimliğine ayrıntılı Microsoft Graph izinlerini atayın.

Dizin Okuyucuları rolü

Directory Readers rolü ve bu bölümde açıklanan portal başlığı öncelikle SQL Managed Instance için geçerlidir. Azure SQL Veritabanı için bunun yerine ince ayrıntılı Microsoft Graph izinleri atayabilir veya alternatif olarak Dizin Okuyucu'yu daha geniş bir çözüm olarak kullanabilirsiniz.

Azure portalındaki SQL Managed Instance için Microsoft Entra ID sayfasında örneğe Dizin Okuyucusu izinleri atanmadığında kullanışlı bir başlık görüntülenir.

  1. Microsoft Entra ID sayfasının üst kısmındaki başlığı seçin ve örneğinizi temsil eden sistem tarafından atanan veya kullanıcı tarafından atanan yönetilen kimliğe izin verin. Bu işlemi yalnızca kiracınızdaki Ayrıcalıklı Rol Yöneticisi veya daha yüksek bir rol gerçekleştirebilir.

    Not

    Başlığı görmüyorsanız, örnekte zaten Dizin Okuyucuları rolü atanmış olabilir veya gerekli Ayrıcalıklı Rol Yöneticisi rolüne sahip olmayabilirsiniz. Bu role sahip değilseniz kiracı yöneticinizden izni vermesini isteyin veya PowerShell sekmesindeki PowerShell yöntemini kullanın.

    İzinleri Ver düğmesi seçili, Microsoft Entra ID ile erişim için SQL yönetilen örneğine izin verme iletişim kutusunun ekran görüntüsü.

  2. İşlem başarılı olduğunda sağ üst köşede bir Başarı bildirimi gösterilir:

     Yönetilen örnek için Microsoft Entra ID okuma izinlerinin başarıyla güncelleştirildiğini onaylayan bildirimin ekran görüntüsü.

Microsoft Entra yöneticisi artık Microsoft Entra sunucu sorumluları (oturum açma bilgileri) ve veritabanı sorumluları (kullanıcılar) oluşturmak için kullanılabilir. Daha fazla bilgi için Microsoft Entra tümleştirmesi ile Azure SQL Managed Instance bölümlerine bakın.

SQL'de Microsoft Entra ilkelerini oluşturma

SQL Veritabanı veya Azure Synapse Analytics'teki bir veritabanına Microsoft Entra kimlik doğrulamasıyla bağlanmak için, o kimlik için veritabanında en az CONNECT iznine sahip bir kullanıcı yapılandırılmalıdır.

Veritabanı kullanıcı izinleri

Veritabanı kullanıcısı oluşturulduğunda, varsayılan olarak veritabanına yönelik izni alır CONNECT . Veritabanı kullanıcısı da izinleri iki durumda devralır:

  • Kullanıcı, sunucuda izinleri de atanmış bir Microsoft Entra grubunun üyesiyse.
  • Kullanıcı bir oturum açmadan oluşturulduysa, veritabanında geçerli olan oturum açma bilgilerinin sunucu tarafından atanan izinlerini devralır.

Sunucu ve veritabanı sorumluları için izinleri yönetme, sorumlu türüne (Microsoft Entra ID, SQL kimlik doğrulaması vb.) bakılmaksızın aynı şekilde çalışır. Kullanıcılara doğrudan izin vermek yerine veritabanı rollerine izinler vermenizi öneririz. Ardından kullanıcılar uygun izinlere sahip rollere eklenebilir. Bu, uzun vadeli izin yönetimini basitleştirir ve bir kimliğin süresi dolduktan sonra erişimi sürdürme olasılığını azaltır.

Daha fazla bilgi için bkz.

Kapsanan veritabanı kullanıcıları

Kapsanan veritabanı kullanıcısı, veritabanında oturum açma bilgilerine master bağlı olmayan bir SQL kullanıcısı türüdür. Microsoft Entra içeren bir veritabanı kullanıcısı oluşturmak için veritabanına en az ALTER ANY USER** iznine sahip bir Microsoft Entra kimliğiyle bağlanın. Aşağıdaki T-SQL örneği, Microsoft_Entra_principal_name Microsoft Entra ID'den bir veritabanı sorumlusu oluşturur.

CREATE USER [<Microsoft_Entra_principal_name>] FROM EXTERNAL PROVIDER;

Bir Microsoft Entra grubu için kapsayıcı bir veritabanı kullanıcısı oluşturmak üzere grubun görünen adını girin:

CREATE USER [ICU Nurses] FROM EXTERNAL PROVIDER;

Yönetilen kimlik veya hizmet sorumlusu için bağımsız veritabanı kullanıcısı oluşturmak için kimliğin görünen adını girin:

CREATE USER [appName] FROM EXTERNAL PROVIDER;

Microsoft Entra kullanıcısı için kapsamalı bir veritabanı kullanıcısı oluşturmak için kimliğin kullanıcı ana adını girin.

CREATE USER [adrian@contoso.com] FROM EXTERNAL PROVIDER;

Oturum açma tabanlı kullanıcılar

Not

Microsoft Entra sunucu sorumluları (oturum açma bilgileri) şu anda Azure SQL Database ve Azure Synapse Analytics için genel önizleme aşamasındadır. Microsoft Entra oturum açma bilgileri Azure SQL Managed Instance ve SQL Server 2022 için genel olarak kullanılabilir.

Microsoft Entra sunucu sorumluları (veya oturum açma bilgileri) desteklenir; bu da kapsanan veritabanı kullanıcılarının gerekli olmadığını gösterir. Veritabanı ilkeleri (kullanıcılar) bir sunucu ilkesine göre oluşturulabilir; bu da Microsoft Entra kullanıcılarının, sunucu düzeyinde atanan giriş izinlerini devralabileceği anlamına gelir.

CREATE USER [appName] FROM LOGIN [appName];

Daha fazla bilgi için bkz. SQL Managed Instance genel bakış. Microsoft Entra sunucu sorumluları (oturum açma bilgileri) oluşturma söz dizimi için bkz. CREATE LOGIN.

Dış kullanıcılar

Azure aboneliğinizle ilişkilendirilmiş olandan farklı bir Microsoft Entra kiracısında yönetilen bir kimlik için doğrudan veritabanı kullanıcısı oluşturamazsınız. Ancak, diğer dizinlerdeki kullanıcılar ilişkili dizine dış kullanıcılar olarak aktarılabilir. Daha sonra veritabanına erişebilen bağımsız veritabanı kullanıcıları oluşturmak için kullanılabilirler. Dış kullanıcılar, Microsoft Entra gruplarında üyelik yoluyla da erişim elde edebilir.

Örnekler: Microsoft Entra federe veya yönetilen etki alanı kullanıcısını temsil eden bir sınırlı veritabanı kullanıcısı oluşturmak için:

CREATE USER [alice@fabrikam.com] FROM EXTERNAL PROVIDER;

Yönetilen etki alanına dış kullanıcı olarak içeri aktarılan federasyon etki alanı kullanıcı hesabı, yönetilen etki alanı kimliğini kullanmalıdır.

Ad konusunda dikkat edilmesi gerekenler

T-SQL : ve CREATE LOGIN ve CREATE USER deyimlerine kullanıcı adları olarak eklendiğinde iki nokta üst üste & veya & işareti gibi özel karakterler desteklenmemektedir.

kullanıcı yönetimi tasarımında Microsoft Entra ID ve Azure SQL tek bir önemli farkla ayrılır: Microsoft Entra ID, görünen adların aynı kiracıda tekrarlanabilmesine izin verirken, Azure SQL, bir sunucu veya örnekteki tüm sunucu yetkililerinin ve veritabanındaki tüm veritabanı yetkililerinin benzersiz bir ada sahip olmasını gerektirir. Azure SQL, yetkilendirme nesnesi oluştururken kimliğin Microsoft Entra'daki görünen adını doğrudan kullandığından, bu durum kullanıcılar oluşturulurken hatalara neden olabilir. bu sorunu çözmek için Azure SQL, kullanıcıların sunucuya veya örneğe eklenen kimliğin Microsoft Entra nesne kimliğini belirtmesine olanak tanıyan WITH OBJECT_ID geliştirmesini kullanıma sundu.

Microsoft Graph izinleri

CREATE USER ... FROM EXTERNAL PROVIDER komutu, oturum açmış kullanıcı adına Microsoft Entra ID'ye ("dış sağlayıcı") Azure SQL'e erişim gerektirir. Bazen, Microsoft Entra ID'nin Azure SQL'e bir özel durum döndürmesine neden olan durumlar ortaya çıkar.

  • Microsoft Entra ID özgü hata iletisini içeren SQL hatası 33134 ile karşılaşabilirsiniz. Hata genellikle erişimin reddedildiğini, kullanıcının kaynağa erişmek için MFA'ya kaydolması gerektiğini veya birinci taraf uygulamalar arasındaki erişimin ön yetkilendirme yoluyla işlenmesi gerektiğini belirtir. İlk iki durumda, sorun genellikle kullanıcının Microsoft Entra kiracısında ayarlanan Koşullu Erişim ilkelerinden kaynaklanır: kullanıcının dış sağlayıcıya erişmesini engeller. Koşullu Erişim ilkelerini '00000003-0000-0000-c000-0000000000000' uygulamasına (Microsoft Graph API uygulama kimliği) erişime izin verecek şekilde güncelleştirmek sorunu çözmelidir. Hata, birinci taraf uygulamalar arasındaki erişimin ön yetkilendirme yoluyla işlenmesi gerektiğini belirtiyorsa, sorunun nedeni kullanıcının hizmet sorumlusu olarak oturum açmış olmasıdır. Bunun yerine bir kullanıcı tarafından yürütülürse komut başarılı olmalıdır.
  • Bağlantı Zaman Aşımı Süresi Doldu alırsanız, connection string TransparentNetworkIPResolution parametresini false olarak ayarlamanız gerekebilir. Daha fazla bilgi için .NET Framework 4.6.1 - TransparentNetworkIPResolution ile ilgili Bağlantı zaman aşımı sorununa bakın.

Microsoft Entra kimlikleri temelinde bağımsız veritabanı kullanıcıları oluşturma hakkında daha fazla bilgi için bkz. CREATE USER.

Çok faktörlü kimlik doğrulamasını yapılandırma

Azure SQL kaynağınızın güvenliği artırmak için multifactor authentication (MFA) yapılandırmayı göz önünde bulundurun. Bu yöntem, kullanıcıdan veritabanında kimlik doğrulaması yapmak için telefon araması veya kimlik doğrulayıcı uygulaması gibi ikinci bir alternatif yöntem kullanmasını ister.

Azure SQL kaynağınızla çok faktörlü kimlik doğrulamasını kullanmak için, önce enable multifactor authentication ve ardından Azure SQL kaynağınız için MFA'yı zorunlu kılmak için Conditional access policy kullanın.

Microsoft Entra ile bağlanma

Microsoft Entra kimlik doğrulaması yapılandırıldıktan sonra SQL Server Management Studio ve SQL Server Data Tools gibi Microsoft araçlarını kullanarak SQL kaynağınıza bağlanabilir ve Microsoft Entra kimliklerini kullanarak bağlanacak şekilde istemci uygulamalarını yapılandırabilirsiniz.

Microsoft Entra kimlik doğrulaması sorunlarını giderme

Sorun giderme yönergeleri için bkz. Blog: Azure SQL Database ve Azure Synapse.