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

Şunlar için geçerlidir: Azure SQL Veritabanı Azure SQL Yönetilen Örneği Azure Synapse Analytics

Bu makalede Azure SQL Veritabanı, Azure SQL Yönetilen Örneği ve Azure Synapse Analytics ile kimlik doğrulaması için Microsoft Entra Id'nin nasıl kullanılacağı gösterilmektedir.

Not

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

Alternatif olarak, Azure Sanal Makineler'da SQL Server için Microsoft Entra kimlik doğrulamasını da 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:

  • Kullanıcılar ve gruplarla doldurulmuş bir Microsoft Entra kiracısı.
  • Azure SQL Veritabanı veya Azure SQL Yönetilen Örneği gibi mevcut bir Azure SQL kaynağı.

Microsoft Entra kiracısı oluşturma ve doldurma

Azure SQL kaynağınız için Microsoft Entra kimlik doğrulamasını yapılandırabilmeniz için önce bir Microsoft Entra kiracısı oluşturmanız ve bunu kullanıcılar ve gruplarla doldurmanız gerekir. Microsoft Entra kiracıları tamamen Azure içinde yönetilebilir veya bir şirket içi Active Directory Etki Alanı 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 Veritabanı, Azure Synapse Analytics ve Azure SQL Yönetilen Örneği 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.

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

Azure SQL Veritabanı ve Azure Synapse Analytics

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

Azure portalında mantıksal sunucu adını bulabilirsiniz

  • Azure SQL Veritabanı Genel Bakış sayfasındaki sunucu adı alanında.
  • Azure Synapse Analytics'teki tek başına ayrılmış SQL havuzunuzun Genel Bakış sayfasındaki sunucu adı alanında.
  • Azure Synapse Analytics çalışma alanınızın Genel Bakış sayfasındaki 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ı Dizinleri + abonelikler bölmesinde Geç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, Ayarlar'ın altında Microsoft Entra Id'yi seçerek Microsoft Entra Id bölmesini açın.

  4. Microsoft Entra Id bölmesinde Yöneticiyi ayarla'yı seçerek Microsoft Entra Id bölmesini açın.

    SQL sunucuları için Microsoft Entra yöneticisini ayarlama seçeneğini gösteren ekran görüntüsü.

  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 seç'e tıklayarak bölmeyi kapatın.

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

    Microsoft Entra yöneticisini kaydetme seçeneğini gösteren ekran görüntüsü.

    Nesne Kimliği, Microsoft Entra kullanıcıları ve grupları için 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 yönetici alanında görünür.

Yöneticiyi kaldırmak için Microsoft Entra ID sayfasının üst kısmında Yöneticiyi kaldır'ı ve ardından Kaydet'i 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. Ada sahip bir kullanıcı zaten varsa, Microsoft Entra yönetici kurulumu başarısız olur ve adın zaten kullanımda olduğunu belirten geri alınır.

Azure SQL Yönetilen Örnek

Microsoft Entra yöneticisinin ayarlanması, Azure SQL Yönetilen Örneği 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 bir Microsoft Entra yöneticisi ayarlayabilirsiniz.

Azure portalını kullanarak SQL yönetilen örneğinize Microsoft Entra ID'ye okuma izinleri vermek için Genel Yönetici veya Ayrıcalıklı Rol Yöneticisi olarak oturum açın ve şu adımları izleyin:

  1. Azure portalında, sağ üst köşedeki hesabınızı seçin ve ardından Geçerli dizininizin hangi dizin olduğunu onaylamak için Dizinleri değiştir'i seçin. Gerekirse dizinleri değiştirin.

    Dizininizi nerede değiştirebileceğinizi gösteren Azure portalının ekran görüntüsü.

  2. Azure portalı Dizinleri + abonelikler bölmesinde, yönetilen örneğinizi geçerli dizin olarak içeren dizini 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, Örneğiniz için Microsoft Entra Id bölmesini açmak için Ayarlar'ın altında Microsoft Entra Id'yi seçin.

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

  4. Microsoft Entra yönetici bölmesinde, Gezinti çubuğundan Yöneticiyi ayarla'yı seçerek Microsoft Entra Id bölmesini açın.

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

  5. Microsoft Entra Id bölmesinde bir kullanıcı arayın, yönetici olmak için kullanıcı veya grubun yanındaki kutuyu işaretleyin ve ardından Seç tuşuna basarak bölmeyi kapatın ve yönetilen örneğinizin Microsoft Entra yönetici sayfasına geri 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 yönetici sayfasının gezinti çubuğundan Kaydet'i seçerek Microsoft Entra yöneticinizi onaylayın.

    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.

    Nesne Kimliği, Microsoft Entra kullanıcıları ve grupları için 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 Yöneticiyi kaldır'ı ve ardından Kaydet'i seçin.

Microsoft Graph izinleri atama

SQL Yönetilen Örneği, 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'yi okumak için izinlere ihtiyaç duyar. Microsoft Entra kimlik doğrulamasının çalışması için yönetilen örnek kimliğini Dizin Okuyucuları rolüne atamanız gerekir. Bunu Azure portalını veya PowerShell'i kullanarak yapabilirsiniz.

Bazı işlemler için Azure SQL Veritabanı ve Azure Synapse Analytics, Microsoft Graph izinlerinde açıklanan Microsoft Graph'ı sorgulama izinleri de gerektirir. Azure SQL Veritabanı ve Azure Synapse Analytics bu senaryolar için ayrıntılı Graf izinlerini desteklerken, SQL Yönetilen Örneği Dizin Okuyucuları rolünü gerektirir. Ayrıntılı izinler ve atamaları, hizmet sorumlularının Microsoft Entra kullanıcıları oluşturmasını sağlama başlığı altında ayrıntılı olarak açıklanmıştır.

Dizin Okuyucuları rolü

Azure portalındaki SQL Yönetilen Örneği için Microsoft Entra Id sayfası, örneğe Dizin Okuyucusu izinleri atanmadığında kullanışlı bir başlık görüntüler.

  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 bir Genel Yönetici veya Ayrıcalıklı Rol Yöneticisi gerçekleştirebilir.

    İzin ver düğmesi seçiliyken Microsoft Entra Id'ye erişmek 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 bir bildirimin ekran görüntüsü.

Microsoft Entra yöneticisi artık Microsoft Entra sunucu sorumlularını (oturum açma bilgileri) ve veritabanı sorumlularını (kullanıcılar) oluşturmak için kullanılabilir. Daha fazla bilgi için bkz. Azure SQL Yönetilen Örneği ile Microsoft Entra tümleştirmesi.

SQL'de Microsoft Entra sorumluları oluşturma

Microsoft Entra kimlik doğrulamasıyla SQL Veritabanı veya Azure Synapse Analytics'teki bir veritabanına bağlanmak için, veritabanında en azından izinle ilgili bir sorumlunun yapılandırılması CONNECT gerekir.

Veritabanı kullanıcı izinleri

Veritabanı kullanıcısı oluşturulduğunda, varsayılan olarak veritabanına BAĞLANMA iznini alır. 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 olursa olsun (Microsoft Entra Id, SQL kimlik doğrulaması vb.) 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 süreli izin yönetimini basitleştirir ve uygun olduğunda bir kimliğin erişimi saklama 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ından ALTER ANY USER iznine sahip bir Microsoft Entra kimliğiyle bağlanın . Aşağıdaki T-SQL örneği, Microsoft Entra Id'den bir veritabanı sorumlusu Microsoft_Entra_principal_name oluşturur.

CREATE USER [<Microsoft_Entra_principal_name>] FROM EXTERNAL PROVIDER;

Bir Microsoft Entra grubu için bağımsız veritabanı kullanıcısı oluşturmak için 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 bağımsız veritabanı kullanıcısı oluşturmak için kimliğin kullanıcı asıl 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 Veritabanı ve Azure Synapse Analytics için genel önizleme aşamasındadır. Microsoft Entra oturum açma bilgileri genel olarak Azure SQL Yönetilen Örneği ve SQL Server 2022 için kullanılabilir.

Microsoft Entra sunucu sorumluları (veya oturum açma bilgileri) desteklenir; başka bir deyişle, kapsanan veritabanı kullanıcıları gerekli değildir. Veritabanı sorumluları (kullanıcılar) bir sunucu sorumlusuna göre oluşturulabilir; bu, Microsoft Entra kullanıcılarının oturum açma bilgilerinin sunucu düzeyinde atanan izinlerini devralabileceği anlamına gelir.

CREATE USER [appName] FROM LOGIN [appName];

Daha fazla bilgi için bkz. SQL Yönetilen Örneği 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ına üyelik yoluyla da erişim elde edebilir.

Örnekler: Microsoft Entra federasyon veya yönetilen etki alanı kullanıcısını temsil eden bir bağımsız 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.

Adlandırmayla ilgili dikkat edilmesi gerekenler

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

Microsoft Entra Id ve Azure SQL, kullanıcı yönetimi tasarımında tek bir anahtar yoldan ayrılır: Microsoft Entra ID, görünen adların kiracı içinde çoğaltılmasına olanak tanırken, Azure SQL bir sunucu veya örnekteki tüm sunucu sorumlularının ve veritabanındaki tüm veritabanı sorumlularının benzersiz bir ada sahip olmasını gerektirir. Azure SQL sorumlu oluştururken kimliğin Microsoft Entra görünen adını doğrudan kullandığından, bu durum kullanıcı oluştururken 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 geliştirmeyi şu anda önizleme aşamasında kullanıma WITH OBJECT_ID sundu.

Microsoft Graph izinleri

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

  • Microsoft Entra Id'ye ö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-000000000000' uygulamasına (Microsoft Graph API'sinin 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 iletisini alırsanız, bağlantı dizesi parametresini false olarak ayarlamanız TransparentNetworkIPResolution gerekebilir. Daha fazla bilgi için bkz . .NET Framework 4.6.1 - TransparentNetworkIPResolution ile bağlantı zaman aşımı sorunu.

Microsoft Entra kimliklerini temel alan 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ızda gelişmiş güvenlik için, kullanıcıdan telefon araması veya kimlik doğrulayıcı uygulaması gibi veritabanında kimlik doğrulaması yapmak için ikinci bir alternatif yöntem kullanmasını isteyen çok faktörlü kimlik doğrulamasını (MFA) yapılandırmayı göz önünde bulundurun.

Azure SQL kaynağınızla çok faktörlü kimlik doğrulamasını kullanmak için önce çok faktörlü kimlik doğrulamasını etkinleştirin ve ardından Azure SQL kaynağınız için MFA'yı zorunlu kılmak üzere bir koşullu erişim ilkesi 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 Veri Araçları gibi Microsoft araçlarıyla SQL kaynağınıza bağlanmak için kullanabilir ve istemci uygulamalarını Microsoft Entra kimliklerini kullanarak bağlanacak şekilde yapılandırabilirsiniz.

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

Sorun giderme yönergeleri için bkz. Blog: Azure SQL Veritabanı ve Azure Synapse ile Microsoft Entra kimlik doğrulamasıyla ilgili sorunları giderme.