Aracılığıyla paylaş


Öğretici: Uygulama kaydıyla SQL Server için Microsoft Entra kimlik doğrulamasını ayarlama

Şunlar için geçerlidir: Yalnızca SQL Server 2022 (16.x).

Bu makalede, uygulama kaydıyla Microsoft Entra Id ile kimlik doğrulamasını ayarlamaya yönelik adım adım bir işlem açıklanır ve farklı Microsoft Entra kimlik doğrulama yöntemlerinin nasıl kullanılacağı gösterilmektedir.

Uyarı

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

Bu öğreticide aşağıdakilerin nasıl yapılacağını öğreneceksiniz:

  • Microsoft Entra uygulaması oluşturma ve kaydetme
  • Microsoft Entra uygulamasına izin verme
  • Sertifika oluşturma ve atama
  • Azure portalı aracılığıyla SQL Server için Microsoft Entra kimlik doğrulamasını yapılandırma
  • Oturumlar ve kullanıcılar oluşturma
  • Desteklenen bir kimlik doğrulama yöntemiyle bağlanma

Önkoşullar

Kimlik doğrulama önkoşulları

Uyarı

Sunucu için bir Microsoft Entra yöneticisi ayarlarken Azure Key Vault sertifikasını ve Microsoft Entra uygulamasını otomatik olarak oluşturmak için Azure'ı kullanabilirsiniz. Daha fazla bilgi için, SQL Server için Microsoft Entra yöneticisini ayarlamak amacıyla otomasyon kullanma kılavuzu bölümüne bakın.

  • SQL Server için Microsoft Entra uygulama kaydı. Bir SQL Server örneğini Microsoft Entra uygulaması olarak kaydetmek, örneğin Microsoft Entra Kimliğini sorgulamasına olanak tanır ve Microsoft Entra uygulamasının SQL Server örneği adına kimlik doğrulaması yapmasına izin verir. Uygulama kaydı, SQL Server tarafından belirli sorgular için kullanılan birkaç izin de gerektirir.

  • SQL Server bu kimlik doğrulaması için Azure Key Vault'ta (AKV) depolanan bir sertifika kullanır. Azure Arc aracısı sertifikayı SQL Server örnek konağına indirir.

Uyarı

Microsoft Entra Kimliği tarafından kimliği doğrulanan bağlantılar her zaman şifrelenir. SQL Server otomatik olarak imzalanan bir sertifika kullanıyorsa bağlantı dizesini eklemeniz trust server cert = true gerekir. SQL Server ve Windows kimliği doğrulanmış bağlantılar şifreleme gerektirmez, ancak kesinlikle önerilir.

SQL Server, kimlik doğrulaması için doğrudan Microsoft Entra Id'ye bağlanır. Doğrudan erişim için açık güvenlik duvarı URL'lerinin açılması veya bir ara sunucu kullanılması gerekir. Microsoft Entra Id kimlik doğrulaması için Arc Connected Machine Agent ara sunucusunu kullanmaz. Makine bir ara sunucu kullanmayı gerektiriyorsa, Microsoft Entra ID için makine düzeyinde WinHTTP ara sunucusunun aşağıdaki komutlar kullanılarak ayarlanması gerekir (değerini uygun değerle değiştirin <http://proxyserver:port> ):

netsh winhttp set proxy proxy-server="<http://proxyserver:port>"

Microsoft Entra ID kimlik doğrulaması Arc aracısı proxy ayarını kullanmaz. Arc Aracısı proxy'si aşağıdaki komutlar kullanılarak ayarlanabilir (uygun değeri <http://proxyserver:port> ile değiştirin):

azcmagent config set proxy.url "<http://proxyserver:port>"

Microsoft Entra uygulaması oluşturma ve kaydetme

  • Azure portalına gidin, Microsoft Entra ID>Uygulama Kayıtları>Yeni Kayıt'ı seçin.
    1. Bir ad belirtin - Bu makaledeki örnekte SQLServer kullanılmaktadır.
    2. Desteklenen hesap türleri'ni seçin ve yalnızca bu kuruluş dizinindeki Hesaplar'ı kullanın
    3. Yeniden yönlendirme URI'si ayarlanmasın
    4. Kayıt Seç

Aşağıdaki uygulama kaydına bakın:

Uygulamayı Azure portalına kaydetme işleminin ekran görüntüsü.

Uygulama izinleri verme

Yeni oluşturulan uygulamayı seçin ve sol taraftaki menüde API İzinleri'ni seçin.

  1. Bir izin ekle>Microsoft Graph>Uygulama izinleri
    1. Directory.Read.All Öğesini Denetle
    2. İzin ekle'yi seçin

Veya

  1. Bir izin ekle>Microsoft Graph>Uygulama izinleri

    1. Application.Read.All Öğesini Denetle

    2. Group.Read.All Öğesini Denetle

    3. User.Read.All Öğesini Denetle

    4. İzin ekle'yi seçin

  2. Yönetici onayı ver'i seçin

Azure portalında onay verme işlemini gösteren ekran görüntüsü.

Uyarı

Yukarıdaki izinlere Yönetici onayı vermek için, Microsoft Entra hesabınız Ayrıcalıklı Rol Yöneticisi rolü veya daha yüksek izinler gerektirir.

Sertifika oluşturma ve atama

  1. Azure portalına gidin, Anahtar kasaları'nı seçin ve kullanmak veya yeni bir kasa oluşturmak istediğiniz anahtar kasasını seçin. Sertifikalar>Oluştur/İçeri Aktar seçin

    1. Sertifika oluşturma yöntemi içinOluştur'a tıklayın.

    2. Sertifika adı ve konu ekleyin. Sertifika adı benzersiz olmalıdır. Mevcut bir sertifikayla eşleşen bir sertifika adı, oturum açma oluşturulduğunda hataya neden olur.

    3. Önerilen geçerlilik süresi en fazla 12 aydır. Kalan değerler varsayılan olarak bırakılabilir.

    4. Oluştur'i seçin.

    Azure portalında sertifika oluşturma işleminin ekran görüntüsü.

    Uyarı

    Sertifika oluşturulduktan sonra devre dışı olduğunu söyleyebilir. Siteyi yenilediğinizde sertifika etkin olarak gösterilir.

  2. Yeni sertifikaya gidin ve sertifikanın en son sürümünün satırını seçin. Sertifikanın ortak anahtarını kaydetmek için CER biçiminde indir'i seçin.

    Azure portalında sertifikayı görüntüleyip indirebileceğiniz sertifikanın ekran görüntüsü.

    Uyarı

    Bunun SQL Server ana bilgisayarında yapılması gerekmez. Bunun yerine, sonraki adım için Azure portalına erişecek tüm istemciler.

  3. Azure portalında yukarıda oluşturulan uygulama kaydına gidin ve Sertifikalar listesi'ni seçin

    1. Sertifika yükle'yi seçin.
    2. Son adımda indirilen ortak anahtarı (.cer dosyası) seçin.
    3. Add (Ekle) seçeneğini belirleyin.

    Azure portalında sertifika ve gizli diziler menüsünün ekran görüntüsü.

  4. Azure portalında Azure Arc Machine'in nesne kimliğini alın.

    1. Azure Arc Kaynakları>Makineleri'nin altında makineyi seçin.

    2. Genel Bakış'taJSON Görünümü'nü bulun.

    3. Kimlik'in altında principalId değerini kopyalayın.

      Makine tanımının JSON görünümünün portal denetiminin ekran görüntüsü.

  5. Portalda, sertifikanın depolandığı Azure Key Vault örneğine gidin ve Azure Machine kaynaklarına erişim verin. Azure Key Vault gezinti menünüzün Ayarlar ve Erişim yapılandırması'na gidin. Rol atamalarını yönetmeye yönelik ayrıntılı adımlar için Bkz. Azure portalını kullanarak Azure rolleri atama.

    Deneyiminiz anahtar kasası erişim yapılandırmanıza bağlıdır:

    Azure rol tabanlı erişim denetimini kullanmak için (önerilir):

    1. Kaynağınıza aşağıdaki rolleri ekleyin.

      • Key Vault Sertifika Kullanıcısı
      • Key Vault Sırlar Kullanıcısı
    2. Bu konumdaki rolleri doğrulayın:

      Azure Key Vault IAM rol eklemelerinin ekran görüntüsü.

    Vault erişim politikasını kullanmak üzere:

    1. Gezinti menüsünden Erişim ilkeleri'ni seçin.

    2. Oluştur'i seçin.

    3. Gizli izinler için Al>Listele seçin.

    4. Sertifika izinleri içinAl>Liste seçin.

    5. sonrakiseçin.

    6. Asıl sayfa için, SQL Server ana bilgisayarının ana bilgisayar adı olan Machine - Azure Arc örneğinizin adını arayın.

      Portalda Azure Arc sunucusu kaynağının ekran görüntüsü.

    7. Seçin, gözden geçir ve oluştur.

    8. Asıl>Nesne Kimliği değerinin örneğe atanan yönetilen kimliğin Asıl Kimliği ile eşleşdiğini doğrulayın.

      Erişim ilkesini gözden geçirmek ve oluşturmak için Azure portalının ekran görüntüsü.

      Onaylamak için kaynak sayfasına gidin ve Genel Bakış sayfasındaki Temel Bileşenler kutusunun sağ üst kısmındaki JSON Görünümü'nü seçin. Kimlik altında principalId değerini bulursunuz

    9. Oluştur'i seçin.

      İzinlerin uygulandığından emin olmak için Oluştur'u seçmeniz gerekir. İzinlerin depolandığından emin olmak için tarayıcı penceresini yenileyin ve Azure Arc örneğinizin mevcut olduğunu onaylayın.

Azure portalı aracılığıyla SQL Server için Microsoft Entra kimlik doğrulamasını yapılandırma

Azure portalındaki adımlar SQL Server 2022 (16.x) için geçerlidir.

Azure portalındaki adımlar SQL Server 2025 (17.x) için geçerli değildir.

Uyarı

Microsoft Entra kimlik doğrulamasını aşağıdaki deneyimlerden herhangi biriyle yapılandırabilirsiniz:

  1. Azure portalına gidin ve SQL Server – Azure Arc'ı seçin ve SQL Server konağınızın örneğini seçin.

  2. ÖZELLIKLER menüsüne giderek SQL Server - Azure Arc kaynağınızın durumunu denetleyin ve bağlı olup olmadığını denetleyin. Daha fazla bilgi için bkz . SQL Server - Azure Arc kaynaklarını doğrulama.

  3. Kaynak menüsündeki Ayarlar'ın altında Microsoft Entra Id ve Purview'ı seçin.

  4. YöneticiYi Ayarla'yı seçerek Microsoft Entra Id bölmesini açın ve SQL Server'da yönetici oturum açma olarak ayarlanacağı hesabı seçin.

  5. Müşteri tarafından yönetilen sertifika'ya tıklayın ve Sertifika seçin.

  6. Sertifikayı değiştir'i seçin ve yeni bölmede daha önce oluşturduğunuz AKV örneğinizi ve sertifikanızı seçin.

  7. Müşteri tarafından yönetilen uygulama kaydı'nu seçin.

  8. Uygulama kaydını değiştir'i seçin ve daha önce oluşturduğunuz uygulama kaydını seçin.

  9. Kaydetseçeneğini seçin. Bu, Arc sunucusu aracısına bir istek gönderir ve bu da söz konusu SQL Server örneği için Microsoft Entra kimlik doğrulamasını yapılandırıyor.

    Azure portalında Microsoft Entra kimlik doğrulamasını ayarlama işleminin ekran görüntüsü.

    Sertifikaların indirilmesi ve ayarların yapılandırılması birkaç dakika sürer. Tüm parametreleri ayarladıktan ve Azure portalında Kaydet'i seçtikten sonra aşağıdaki ileti görüntülenebilir:

    SQL Server's Azure Arc agent is currently processing a request. Values below may be incorrect. Please wait until the agent is done before continuing.
    

    Microsoft Entra oturum açmayı denemeden önce, kaydetme işlemi onaylanana kadar bekleyin.

    Azure Arc sunucu aracısı yalnızca önceki eylem tamamlandıktan sonra güncelleştirilebilir. Bu, yeni bir Microsoft Entra yapılandırmasını son haline getirilmeden önce kaydetmenin hataya neden olabileceği anlamına gelir. Kaydet'i seçtiğinizde Genişletilmiş arama başarısız oldu iletisini görürseniz 5 dakika bekleyip yeniden deneyin.

    Bir Microsoft Entra yöneticisine sysadmin rolü verildikten sonra, Azure portalında Microsoft Entra yöneticisinin değiştirilmesi, sysadmin olarak kalan önceki oturum açma yetkisini kaldırmaz. Oturum açmayı kaldırmak için el ile düşürülmelidir.

    SQL Server örneği için Microsoft Entra yönetici değişikliği, SQL Server'ın Azure Arc aracısı ile işlem tamamlandıktan sonra sunucu yeniden başlatma olmadan gerçekleşir. Yeni yöneticinin içinde sys.server_principalsgörüntülenmesi için SQL Server örneğinin yeniden başlatılması gerekir ve o zamana kadar eski yönetici görüntülenir. Geçerli Microsoft Entra yöneticisi Azure portalında denetlenebilir.

Oturumlar ve kullanıcılar oluşturma

SQL Server ana makinesindeki Azure Arc aracısı işlemini tamamladıktan sonra, portaldaki Microsoft Entra ID menüsünde seçilen yönetici hesabı, SQL Server örneğinde bir sysadmin olur. SQL Server Management Studio (SSMS) gibi bir istemci kullanarak sunucuda sysadmin izinlerine sahip Microsoft Entra yönetici hesabıyla SQL Server'da oturum açın.

Uyarı

Microsoft Entra kimlik doğrulaması ile yapılan tüm SQL Server bağlantıları şifreli bir bağlantı gerektirir. Veritabanı Yöneticisi (DBA) sunucu için güvenilir bir SSL/TLS sertifikası ayarlamadıysa, oturum açma işlemleri büyük olasılıkla şu iletiyle başarısız olur:

The certificate chain was issued by an authority that is not trusted.

Bunu düzeltmek için SQL Server örneğini istemci tarafından güvenilen bir SSL/TLS sertifikası kullanacak şekilde yapılandırın veya gelişmiş bağlantı özelliklerinde güven sunucusu sertifikasını seçin. Daha fazla bilgi için bkz. SQL Server Veritabanı Altyapısını şifreleme bağlantıları için yapılandırma.

Oturum açma söz dizimi oluşturma

Azure SQL Veritabanı ve Azure SQL Yönetilen Örneği üzerinde kullanılan Microsoft Entra oturum ve kullanıcı oluşturma söz dizimi artık SQL Sunucusu üzerinde de kullanılabilir.

Uyarı

SQL Server'da, ALTER ANY LOGIN veya ALTER ANY USER iznine sahip her Microsoft Entra hesabı, sırasıyla Microsoft Entra oturum açma bilgileri veya kullanıcıları oluşturabilir. Aksi takdirde, yalnızca izinlere sahip sysadmin hesaplar Microsoft Entra oturum açma bilgileri veya kullanıcıları oluşturabilir.

Microsoft Entra hesabı için oturum açma bilgisi oluşturmak için veritabanında aşağıdaki T-SQL komutunu yürütebilirsiniz master :

CREATE LOGIN [principal_name] FROM EXTERNAL PROVIDER;

Kullanıcılar için asıl ad user@tenant.com biçiminde olmalıdır. Microsoft Entra Id'de bu, kullanıcı asıl adıdır. Microsoft Entra grupları veya uygulamaları gibi diğer tüm hesap türleri için asıl ad, Microsoft Entra nesnesinin adıdır.

Aşağıda bazı örnekler verilmiştir:

-- login creation for Microsoft Entra user
CREATE LOGIN [user@contoso.com] FROM EXTERNAL PROVIDER;
GO
-- login creation for Microsoft Entra group
CREATE LOGIN [my_group_name] FROM EXTERNAL PROVIDER;
GO
-- login creation for Microsoft Entra application
CREATE LOGIN [my_app_name] FROM EXTERNAL PROVIDER;
GO

Veritabanındaki Microsoft Entra oturum açma bilgilerini master listelemek için T-SQL komutunu yürütür:

SELECT * FROM sys.server_principals
WHERE type IN ('E', 'X');

Microsoft Entra kullanıcısına sysadmin rol üyeliği tanımak için (örneğin admin@contoso.com), master içinde aşağıdaki komutları yürütebilirsiniz.

CREATE LOGIN [admin@contoso.com] FROM EXTERNAL PROVIDER;
GO
ALTER SERVER ROLE sysadmin ADD MEMBER [admin@contoso.com];
GO

sp_addsrvrolemember saklı yordam, SQL Server sysadmin sunucu rolünün bir üyesi olarak yürütülmelidir.

Kullanıcı söz dizimi oluşturma

Microsoft Entra ID'den, sunucu sorumlusuyla ilişkilendirilmiş bir veritabanı kullanıcısı (oturum açma) veya kapsayıcı veritabanı kullanıcısı olarak bir veritabanı kullanıcısı oluşturabilirsiniz.

SQL Server veritabanındaki bir Microsoft Entra oturumundan Microsoft Entra kullanıcısı oluşturmak için aşağıdaki söz dizimini kullanın:

CREATE USER [principal_name] FROM LOGIN [principal_name];

principal_name dizimi, oturum açmalarıyla aynıdır.

Aşağıda bazı örnekler verilmiştir:

-- for Azure AD user
CREATE USER [user@contoso.com] FROM LOGIN [user@contoso.com];
GO
-- for Azure AD group
CREATE USER [my_group_name] FROM LOGIN [my_group_name];
GO
-- for Azure AD application
CREATE USER [my_app_name] FROM LOGIN [my_app_name];
GO

Sunucu oturum açma bilgilerine bağlı olmayan bir Microsoft Entra içerikli veritabanı kullanıcısı oluşturmak için aşağıdaki söz dizimi kullanılabilir:

CREATE USER [principal name] FROM EXTERNAL PROVIDER;

Bir gruptan veya uygulamadan Microsoft Entra veritabanı kullanıcısı oluştururken olduğu gibi <principal name> Microsoft Entra grup adını veya Microsoft Entra uygulama adını kullanın.

Aşağıda bazı örnekler verilmiştir:

-- for Azure AD contained user
CREATE USER [user@contoso.com] FROM EXTERNAL PROVIDER;
GO
-- for Azure AD contained group
CREATE USER [my_group_name] FROM EXTERNAL PROVIDER;
GO
--for Azure AD contained application
CREATE USER [my_group_name] FROM EXTERNAL PROVIDER;
GO

Veritabanında oluşturulan kullanıcıları listelemek için aşağıdaki T-SQL komutunu yürütür:

SELECT * FROM sys.database_principals;

Yeni bir veritabanı varsayılan olarak Bağlanma iznine sahiptir. Diğer tüm SQL Server izinleri yetkili izin verenler tarafından açıkça verilmelidir.

Microsoft Entra konuk hesapları

CREATE LOGIN ve CREATE USER söz dizimi konuk kullanıcıları da destekler. Örneğin, kiracıya testuser@outlook.com davet edilirsecontoso.com, diğer Microsoft Entra kullanıcılarını veya oturum açma bilgilerini oluşturmakla aynı söz dizimiyle SQL Server'da oturum açma olarak eklenebilir. Konuk kullanıcılar ve oturum açma bilgileri oluştururken, kiracıdaki kullanıcı asıl adını değil konuk hesabının kaynak e-postasını kullanın. Örneklerde, hesap outlook.com kiracısında kayıtlı olmasına rağmen contoso.com sağlanır.

Mevcut oturum açma bilgisinden konuk kullanıcı oluşturma

CREATE USER [testuser@outlook.com] FROM LOGIN [testuser@outlook.com];

Konuk kullanıcıyı sınırlandırılmış kullanıcı olarak oluşturma

CREATE USER [testuser@outlook.com] FROM EXTERNAL PROVIDER;

Desteklenen bir kimlik doğrulama yöntemiyle bağlanma

SQL Server çeşitli Microsoft Entra kimlik doğrulama yöntemlerini destekler:

  • Varsayılan
  • Kullanıcı adı ve parola
  • Tümleşik
  • Çok faktörlü kimlik doğrulaması ile evrensel
  • Servis Principal
  • Denetim Altındaki Kimlik
  • Erişim belirteci

SQL Server örneğine bağlanmak için bu yöntemlerden birini kullanın. Daha fazla bilgi için bkz. SQL Server için Microsoft Entra kimlik doğrulaması.

SSMS kullanarak kimlik doğrulama örneği

Uyarı

Microsoft Entra ID, Azure Active Directory (Azure AD) içinyeni ad olsa da, mevcut ortamların kesintiye uğramasını önlemek için Azure AD yine de kullanıcı arabirimi alanları, bağlantı sağlayıcıları, hata kodları ve cmdlet'ler gibi sabit kodlanmış bazı öğelerde kalır. Bu makalede, iki ad birbirinin yerine kullanılabilir.

Azure Active Directory - MFA ile Evrensel kimlik doğrulama yöntemini kullanan SQL Server Management Studio (SSMS) bağlantı sayfasının anlık görüntüsü aşağıdadır.

Sunucuya Bağlan penceresini gösteren SSMS ekran görüntüsü.

Kimlik doğrulama işlemi sırasında, kullanıcının oluşturulduğu bir veritabanı SSMS'de açıkça belirtilmelidir. Seçenekler>Bağlantı Özellikleri>Veritabanına bağlan: database_nameseçeneğini genişletin.

Daha fazla bilgi için bkz . Microsoft Entra çok faktörlü kimlik doğrulamasını kullanma.

Azure SQL için Microsoft Entra kimlik doğrulamasını destekleyen SQL Server araçları, SQL Server 2022 (16.x) için de desteklenir.

Microsoft Entra Id parametrelerinin depolandığı konum

Uyarı

Microsoft Entra Id parametreleri Azure Arc aracısı tarafından yapılandırılır ve el ile yeniden yapılandırılmamalıdır.

Linux'ta Microsoft Entra ID parametreleri içinde mssql-confdepolanır. Linux'taki yapılandırma seçenekleri hakkında daha fazla bilgi için bkz. Mssql-conf aracıyla Linux üzerinde SQL Server'ı yapılandırma.

Bilinen sorunlar

  • Sertifika güncellemesi yayılmıyor:
    • Microsoft Entra kimlik doğrulaması SQL Server için yapılandırıldıktan sonra, SQL Server - Azure Arc kaynağının Microsoft Entra Kimliği ve Purview bölmesindeki sertifikanın güncelleştirilmesi tam olarak yayılmayabilir. Bu, kaydetme işleminin başarılı olmasına ancak eski değerin görüntülenmeye devam olmasına neden olur. Sertifikayı güncelleştirmek için aşağıdakileri yapın:

      • Yöneticiyi Kaldır'ı seçin.
      • Kaydetseçeneğini seçin.
      • Yöneticiyi Ayarla'yı seçin ve yeni sertifikayla Microsoft Entra kimlik doğrulamasını yeniden yapılandırın.
      • Kaydetseçeneğini seçin.