Linux konağındaki SQL Server'ı Active Directory etki alanına ekleme

Şunlar için geçerlidir:Linux üzerinde SQL Server

Bu makale, SQL Server'ı çalıştıran bir Linux konakının Active Directory alanına nasıl bağlanacağına dair genel rehberlik sunar. İki yöntem vardır: yerleşik bir SSSD paketi kullanın veya üçüncü taraf Active Directory sağlayıcıları kullanın. Üçüncü taraf alan adresi birleştirme ürünlerine örnek olarak PowerBroker Identity Services (PBIS),One Identity Safeguard Authentication Services (VAS) ve Centrify verilebilir.

Bu kılavuz, Active Directory yapılandırmanızı denetleme adımlarını içerir. Ancak, üçüncü taraf yardımcı programları kullanırken bir makinenin etki alanına nasıl katılacağını gösteren yönergeler sağlamak amaçlanmamıştır.

Note

Active Directory'yi daha yeni Ubuntu, RHEL veya SLES sürümleriyle yapılandırma hakkında bilgi için bkz. Öğretici: Linuxüzerinde SQL Server ile Active Directory kimlik doğrulamasını yapılandırmak için adutil kullanma .

Prerequisites

Active Directory kimlik doğrulamasını yapılandırmadan önce, ağınızda Windows Server çalıştıran bir bilgisayarı Active Directory alan kontrolcüsü olarak kurmanız gerekir. Sonra SQL Server'ı çalıştıran Linux ana bilgisayarına Active Directory alanına katılın.

Bu makalede açıklanan örnek adımlar yalnızca yönergeler içindir ve Ubuntu 16.04, Red Hat Enterprise Linux (RHEL) 7.x ve SUSE Linux Enterprise Server (SLES) 12 işletim sistemlerine başvurur. Gerçek adımlar ortamınıza ve işletim sistemi sürümüne bağlı olarak biraz farklılık gösterebilir. Örneğin, Ubuntu 18.04 netplan kullanırken, RHEL 8.x ağ yönetimi ve yapılandırması için nmcli ve diğer araçları kullanır. Belirli araçlar, yapılandırma, özelleştirme ve gerekli sorun giderme işlemleri için ortamınız için sistem ve etki alanı yöneticilerinizle etkileşim kurmanız gerekir.

Note

SQL Server 2025(17.x) tarihinden itibaren SUSE Linux Enterprise Server (SLES) desteklenmez.

Ters DNS (rDNS)

Windows Server çalıştıran bir bilgisayarı etki alanı denetleyicisi olarak ayarladığınızda, varsayılan olarak bir rDNS bölgeniz olmayabilir. SQL Server'ı çalıştıracak Linux makinesinin hem etki alanı denetleyicisi hem de IP adresi için geçerli bir rDNS bölgesinin mevcut olduğundan emin olun.

Ayrıca, alan kontrolörlerinize işaret eden PTR kayıtlarının olduğundan emin olun.

Etki alanı denetleyicisi bağlantısını denetleme

Etki alanının hem kısa hem de tam tanımlı adlarını ve etki alanı denetleyicisinin ana bilgisayar adını kullanarak etki alanı denetleyicisine ulaşabildiğinizi kontrol edin. Alan kontrolcüsünün IP adresi ayrıca alan kontrolcüsünün tam nitelikli alan adı (FQDN) olarak da çözülmelidir:

ping contoso
ping contoso.com
ping dc1.contoso.com
nslookup <IP address of dc1.contoso.com>

Tip

Bu öğreticide sırasıyla örnek etki alanı ve bölge adları olarak contoso.com ve CONTOSO.COM kullanılır. Ayrıca, etki alanı denetleyicisinin tam nitelikli etki alanı adı örneği olarak DC1.CONTOSO.COM kullanır. Bu adları kendi değerlerinizle değiştirmeniz gerekir.

Doğru etki alanı adı çözümlemesini sağlamak için, ad denetimleri sırasında herhangi bir tutarsızlık bulunması durumunda /etc/resolv.conf dosyasını güncelleştirmek çok önemlidir. Güncelleştirme yordamı dağıtımlar arasında farklılık gösterir; bu nedenle, doğru rehberlik için resmi belgelere danışmanız önerilir. Aşağıdaki listede bazı dağıtımlar ve bunların temel sürümleri için bağlantılar sağlanır:

Distribution Referans makalesi
RHEL 8 /etc/resolv.conf el ile yapılandırma
RHEL 9 /etc/resolv.conf el ile yapılandırma
SLES 15 NETCONFIG_DNS_STATIC_SEARCHLIST ve NETCONFIG_DNS_STATIC_SERVERS ayarları
Ubuntu Ad Çözümlemesi bölümü

Amacınız, alan adı çözümünü kolaylaştırmak için dağıtımınızda /etc/resolv.conf'ı doğru şekilde yapılandırmaktır. Örneğin, alan adınız contoso.com ve Active Directory IP adresiniz 10.0.0.4 ise, ana bilgisayardan başarılı bir ad çözümlemesi sağlamak için /etc/resolv.conf doğru bir şekilde yapılandırılmalıdır.

cat /etc/resolv.conf

Sonuç kümesi aşağıdadır.

# Generated by NetworkManager
search contoso.com com
nameserver 10.0.0.4

RHEL 7.x

  1. Active Directory etki alanınızın etki alanı arama listesinde yer alabilmesi için /etc/sysconfig/network-scripts/ifcfg-eth0 dosyasını düzenleyin. Veya başka bir arabirim yapılandırma dosyasını uygun şekilde düzenleyin:

    sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
    

    Çıktı aşağıdaki örneğe benzer:

    PEERDNS=no
    DNS1=<Domain controller IP address>
    DOMAIN="contoso.com com"
    
  2. Bu dosyayı düzenledikten sonra ağ hizmetini yeniden başlatın:

    sudo systemctl restart network
    
  3. Şimdi /etc/resolv.conf dosyanızın aşağıdaki örneğe benzer bir satır içerdiğini denetleyin:

    sudo vi /etc/resolv.conf
    

    Çıktı aşağıdaki örneğe benzer:

    search contoso.com com
    nameserver <Domain controller IP address>
    
  4. Etki alanı denetleyicisine hâlâ ping gönderemiyorsanız, denetleyicinin tam etki alanı adını ve IP adresini bulun. Örnek etki alanı adı DC1.CONTOSO.COM. Aşağıdaki girdiyi /etc/hosts'a ekleyin:

    sudo vi /etc/hosts
    

    Çıktı aşağıdaki örneğe benzer:

    <IP address> DC1.CONTOSO.COM CONTOSO.COM CONTOSO
    

Active Directory etki alanına katılma

Temel yapılandırma ve alan kontrolcüsüyle bağlantıyı doğruladıktan sonra, SQL Server çalıştıran bir Linux barındırmasını Active Directory alanına bağlamak için iki seçenek vardır:

1. Seçenek: Active Directory etki alanına katılmak için SSSD paketini kullanma

Bu yöntem, SQL Server'ı çalıştıran Linux ana bilgisayarını realmd ve sssd paketleri kullanarak bir Active Directory alanına birleştirir.

Bu, Bir Linux ana bilgisayarını Active Directory etki alanı denetleyicisine eklemek için tercih edilen yöntemdir.

En güncel yönergeler için dağıtım ortakları tarafından sağlanan resmi belgelere bakın.

Distribution Referans makalesi
RHEL 8 SSSD kullanarak AD Etki Alanı'nı keşfetme ve katılma
RHEL 9 SSSD kullanarak AD Etki Alanı'nı keşfetme ve katılma
SLES Windows etki alanı üyeliğini kullanarak Active Directory'ye katılma
Ubuntu Active Directory ile SSSD'yi ayarlama

SQL Server'ı bir Active Directory alanına çalıştıran bir Linux barındırıcısını birleştirmek için aşağıdaki adımları kullanın:

  1. Ana makinenizi Active Directory alan alanınıza bağlamak için realmd kullanın. Öncelikle hem realmd hem de Kerberos istemci paketlerini SQL Server Linux ana bilgisayarına Linux dağıtımınızın paket yöneticisini kullanarak yüklemeniz gerekir:

    RHEL:

    sudo yum install realmd krb5-workstation
    

  1. Kerberos istemci paketi yüklemesi sizden bölge adı isterse, etki alanı adınızı büyük harfle girin.

  2. DNS'nizin düzgün yapılandırıldığını onayladıktan sonra aşağıdaki komutu çalıştırarak etki alanına katılın. Etki alanına yeni bir makine eklemek için Active Directory'de yeterli ayrıcalıklara sahip bir Active Directory hesabı kullanarak kimlik doğrulaması yapmanız gerekir. Bu komut Active Directory'de yeni bir bilgisayar hesabı oluşturur, /etc/krb5.keytab ana bilgisayar anahtar sekmesi dosyasını oluşturur, etki alanını /etc/sssd/sssd.confiçinde yapılandırır ve /etc/krb5.conf'yi günceller.

    realmd ile ilgili bir sorun nedeniyle, önce makine ana bilgisayar adını makine adı yerine tamamen belirlenmiş etki alanı adı (FQDN) olarak ayarlayın. Aksi takdirde, bölge makine için gerekli tüm SPN'leri oluşturmayabilir ve etki alanı denetleyiciniz dinamik DNS güncelleştirmelerini desteklese bile DNS girişleri otomatik olarak güncelleştirilmeyebilir.

    sudo hostname <old hostname>.contoso.com
    

    Bu komutu çalıştırdıktan sonra, /etc/hostname dosyanız <old hostname>.contoso.comiçermelidir.

    sudo realm join contoso.com -U 'user@CONTOSO.COM' -v
    

    Successfully enrolled machine in realmiletisini görmeniz gerekir.

    Aşağıdaki tabloda, alabileceğiniz bazı hata iletileri ve bunların çözümüyle ilgili öneriler listelenmektedir:

    Hata iletisi Recommendation
    Necessary packages are not installed Bölge birleştirme komutunu yeniden çalıştırmadan önce Linux dağıtımınızın paket yöneticisini kullanarak bu paketleri yükleyin.
    Insufficient permissions to join the domain Bir etki alanı yöneticisine Linux makinelerini etki alanınıza eklemek için yeterli izinlere sahip olup olmadığınızı denetleyin.
    KDC reply did not match expectations Kullanıcı için doğru bölge adını belirtmemiş olabilirsiniz. Realm adları büyük/küçük harfe duyarlıdır, genellikle büyük harflerle yazılır ve realm discover contoso.com komutuyla tanımlanabilir.

    SQL Server, kullanıcı hesaplarını ve gruplarını güvenlik tanımlayıcılarıyla (SID) eşlemek için SSSD ve NSS kullanır. Active Directory oturum açma bilgilerinin başarıyla oluşturulabilmesi için SQL Server için SSSD'nin yapılandırılması ve çalıştırılması gerekir. realmd bunu genellikle etki alanına katılırken otomatik olarak yapar, ancak bazı durumlarda bunu ayrıca yapmanız gerekir.

    Daha fazla bilgi için bkz. SSSD'yiel ile yapılandırma ve NSS'yi SSSDile çalışacak şekilde yapılandırma.

  3. Artık etki alanından bir kullanıcı hakkında bilgi toplayabileceğinizi ve bu kullanıcı olarak bir Kerberos bileti edinebileceğinizi doğrulayın. Aşağıdaki örnekte, bunun için kimlik, kinitve klist komutları kullanılır.

    SSSD'nin alan kullanıcı ve grup üyeliklerini çözebildiğini doğrulamak için kullanılır id :

    id user@contoso.com
    

    Çıktı, alan alan kullanıcısının kullanıcı kimliğini, grup kimliğini ve grup üyeliklerini göstermelidir:

    uid=1348601103(user@contoso.com) gid=1348600513(domain group@contoso.com) groups=1348600513(domain group@contoso.com)
    

    Alan adı kullanıcısı için Kerberos bileti talep etmek için kullanılan yöntem kinit :

    kinit user@CONTOSO.COM
    

    Komut, alan alan kullanıcısının şifresini sormalıdır:

    Password for user@CONTOSO.COM:
    

    Kerberos biletini doğrulamak için klist kullanın:

    klist
    

    Çıktı, alan kullanıcısını varsayılan ana olarak tanımlamalıdır:

    Ticket cache: FILE:/tmp/krb5cc_1000
    Default principal: user@CONTOSO.COM
    

    id user@contoso.com döndürürse No such usersudo systemctl status sssdkomutunu çalıştırarak SSSD hizmetinin başarıyla başlatıldığından emin olun. Hizmet çalışıyorsa ve hata almaya devam ediyorsanız, SSSD için ayrıntılı günlük kaydını etkinleştirmeyi deneyin. Daha fazla bilgi için Sorun Giderme SSSDiçin Red Hat belgelerine bakın.

    kinit user@CONTOSO.COM döndürürse KDC reply didn't match expectations while getting initial credentials, alanı büyük harfle belirttiğinizden emin olun.

Daha fazla bilgi için, SSSD kullanarak bir AD Alanını Keşfetmek ve Birleştirmek için Red Hat dokümantasyonuna bakınız.

Seçenek 2: Üçüncü taraf Active Directory sağlayıcı araçları kullanın

PBIS, VASveya Centrifygibi üçüncü taraf yardımcı programlarını kullanabilirsiniz. Bu makale, her bir yardımcı program için adımları kapsamaz. Devam etmeden önce bu yardımcı programlardan birini kullanarak SQL Server'ı çalıştıran Linux ana bilgisayarını alana katmalısınız.

SQL Server, Active Directory ile ilgili sorgular için üçüncü taraf entegratörlerden kod veya kütüphaneler kullanmaz. SQL Server her zaman doğrudan bu kurulumda OpenLDAP kitaplık çağrılarını kullanarak Active Directory'i sorgular. Üçüncü taraf entegratörler yalnızca Linux ana bilgisayarını bir Active Directory alanına bağlamak için kullanılır ve SQL Server bu araçlarla doğrudan iletişim kurmaz.

Important

Linuxüzerinde SQL Server ile Active Directory kimlik doğrulamasını kullanma makalenin Ek yapılandırma seçenekleri bölümündeki yapılandırma seçeneğini kullanma önerilerine bakın.

/etc/krb5.conf'ın doğru yapılandırıldığını doğrulayın. Çoğu üçüncü taraf Active Directory sağlayıcısı için bu yapılandırma otomatik olarak gerçekleştirilir. Ancak, gelecekteki sorunları önlemek için /etc/krb5.conf aşağıdaki değerleri denetleyin:

sudo vi /etc/krb5.conf

Çıktı aşağıdaki örneğe benzer:

[libdefaults]
default_realm = CONTOSO.COM

[realms]
CONTOSO.COM = {
}

[domain_realm]
contoso.com = CONTOSO.COM
.contoso.com = CONTOSO.COM

Ters DNS'nin düzgün yapılandırıldığından emin olun

Aşağıdaki komut, SQL Server çalıştıran sunucunun tam etki alanı adını (FQDN) döndürmelidir. SqlHost.contoso.com bunun bir örneğidir.

host <IP address of SQL Server host>

Bu komutun çıktısı <reversed IP address>.in-addr.arpa domain name pointer SqlHost.contoso.combenzer olmalıdır. Eğer bu komut ana bilgisayarınızın FQDN'sini döndürmezse veya FQDN yanlışsa, SQL Server'ı çalıştıran Linux sunucusu için DNS sunucunuzun ters DNS girişi ekleyin.

Sonraki adım

Bu makalede, SQL Server'ı Active Directory kimlik doğrulaması ile çalıştıran bir Linux barındırıcısı yapılandırdınız. Linux üzerinde SQL Server'ı Active Directory hesaplarını destekleyecek şekilde yapılandırmayı tamamlamak için bu yönergeleri izleyin.