Linux ve kapsayıcılarda SQL Server için Active Directory kimlik doğrulaması sorunlarını giderme

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

Bu makale, Linux ve kapsayıcılarda SQL Server ile ilgili Active Directory Etki Alanı Hizmetleri kimlik doğrulaması sorunlarını gidermenize yardımcı olur. Başarılı bir Active Directory yapılandırması için önkoşul denetimleri ve ipuçları ile sık karşılaşılan hataların ve sorun giderme adımlarının listesini içerir.

Geçerli yapılandırmayı doğrulama

Sorun gidermeye başlamadan önce, mevcut kullanıcıyı, mssql.confHizmet Başalı Adı (SPN) ve alem ayarlarını doğrulayın.

  1. Kerberos TGT'yi (bilet verme bileti) şu şekilde kinitalın veya yenileyin:

    kinit privilegeduser@CONTOSO.COM
    
  2. Aşağıdaki komutu çalıştırın ve çalıştıran kullanıcının şu mssql.keytabkomutlara erişimi olduğundan emin olun:

    /opt/mssql/bin/mssql-conf validate-ad-config /var/opt/mssql/secrets/mssql.keytab
    

    Komut hakkında validate-ad-config daha fazla bilgi için çalıştırın /opt/mssql/bin/mssql-conf validate-ad-config --help.

DNS ve ters DNS aramaları

  1. Etki alanı adı ve NetBIOS adı üzerindeki DNS aramaları, normalde etki alanı denetleyicisinin (DC) IP adresiyle eşleşen aynı IP adresini döndürmelidir. BU komutları SQL Server konak makinesinden çalıştırın.

    nslookup contoso
    nslookup contoso.com
    

    IP adresleri eşleşmiyorsa, DNS aramalarını ve DC ile iletişimi düzeltmek için bkz. Linux konağındaki SQL Server'ı Active Directory etki alanına ekleme .

  2. Önceki sonuçlardan her IP adresi için ters DNS (rDNS) araştırması yapın. Mümkünse IPv4 ve IPv6 adreslerini ekleyin.

    nslookup <IPs returned from the above commands>
    

    Tümü döndürmelidir <hostname>.contoso.com. Aksi takdirde, Active Directory'deki PTR (işaretçi) kayıtlarını kontrol edin.

    rDNS'nin çalışmasını sağlamak için etki alanı yöneticinizle birlikte çalışmanız gerekebilir. Eğer tüm geri dönen IP adresleri için PTR girişleri ekleyemezseniz, SQL Server'ı alan kontrolörlerinin bir alt kümesiyle sınırlayabilirsiniz. Bu değişiklik, konakta krb5.conf kullanan diğer tüm hizmetleri etkiler.

    Ters DNS hakkında daha fazla bilgi için bkz. Ters DNS nedir?

Tuş sekmesi dosyasını ve izinlerini denetleme

  1. Keytab (anahtar tablosu) dosyasını oluşturduğumu ve uygun izinlerle doğru dosyayı kullanacak şekilde yapılandırdığınızı mssql-conf kontrol edin. Tuş sekmesinin kullanıcı hesabı tarafından mssql erişilebilir olması gerekir. Daha fazla bilgi için bkz. Linux üzerinde SQL Server ile Active Directory kimlik doğrulamasını yapılandırmak için adutil kullanma.

  2. Anahtar sekmesinin içeriğini listeleyebileceğinizden ve doğru SPN'leri, bağlantı noktasını, şifreleme türünü ve kullanıcı hesabını eklediğinizden emin olun. SPN'leri ve tuş sekmesi girişlerini oluştururken şifreleri doğru yazmazsanız, Active Directory kimlik doğrulamasıyla giriş yapmaya çalışırken hatalarla karşılaşırsınız.

    klist -kte /var/opt/mssql/secrets/mssql.keytab
    

    Çalışan bir tuş sekmesi örneği aşağıda verilmiştir. Örnekte iki şifreleme türü kullanılır, ancak ortamınızda desteklenen şifreleme türlerine bağlı olarak yalnızca bir veya daha fazla şifreleme kullanabilirsiniz. Örnekte, sqluser@CONTOSO.COM ayrıcalıklı hesaptır (bu, network.privilegedadaccount içindeki mssql-conf ayarıyla eşleşir) ve SQL Server için ana bilgisayar adı, varsayılan sqllinux.contoso.com bağlantı noktasını dinleyen 1433'tür.

    $ kinit privilegeduser@CONTOSO.COM
    Password for privilegeduser@CONTOSO.COM:
    
    $ klist
    
    Ticket cache: FILE:/tmp/krb5cc_1000
    Default principal: privilegeduser@CONTOSO.COM
    Valid starting     Expires            Service principal
    01/26/22 20:42:02  01/27/22 06:42:02  krbtgt/CONTOSO.COM@CONTOSO.COM
        renew until 01/27/22 20:41:57
    
    $ klist -kte /var/opt/mssql/secrets/mssql.keytab
    
    Keytab name: FILE:/var/opt/mssql/secrets/mssql.keytab
    KVNO Timestamp         Principal
    ---- ----------------- --------------------------------------------------------
       2 01/13/22 13:19:47 MSSQLSvc/sqllinux@CONTOSO.COM (aes256-cts-hmac-sha1-96)
       2 01/13/22 13:19:47 MSSQLSvc/sqllinux@CONTOSO.COM (aes128-cts-hmac-sha1-96)
       2 01/13/22 13:19:47 MSSQLSvc/sqllinux.contoso.com@CONTOSO.COM (aes256-cts-hmac-sha1-96)
       2 01/13/22 13:19:47 MSSQLSvc/sqllinux.contoso.com@CONTOSO.COM (aes128-cts-hmac-sha1-96)
       2 01/13/22 13:19:47 MSSQLSvc/sqllinux:1433@CONTOSO.COM (aes256-cts-hmac-sha1-96)
       2 01/13/22 13:19:47 MSSQLSvc/sqllinux:1433@CONTOSO.COM (aes128-cts-hmac-sha1-96)
       2 01/13/22 13:19:47 MSSQLSvc/sqllinux.contoso.com:5533@CONTOSO.COM (aes256-cts-hmac-sha1-96)
       2 01/13/22 13:19:47 MSSQLSvc/sqllinux.contoso.com:5533@CONTOSO.COM (aes128-cts-hmac-sha1-96)
       2 01/13/22 13:19:55 sqluser@CONTOSO.COM (aes256-cts-hmac-sha1-96)
       2 01/13/22 13:19:55 sqluser@CONTOSO.COM (aes128-cts-hmac-sha1-96)
    

"krb5.conf alan bilgilerini doğrula"

  1. içinde krb5.conf (konumunda /etc/krb5.confbulunur), varsayılan bölge, bölge bilgileri ve etki alanı ile bölge eşlemesi için değerler sağladığınızı denetleyin. Aşağıdaki örnek krb5.conf dosyayı inceleyin. Daha fazla bilgi için bkz. Linux ve kapsayıcılarda SQL Server için Active Directory kimlik doğrulamasını anlama.

    [libdefaults]
    default_realm = CONTOSO.COM
    default_keytab_name = /var/opt/mssql/secrets/mssql.keytab
    default_ccache_name = ""
    
    [realms]
    CONTOSO.COM = {
        kdc = adVM.contoso.com
        admin_server = adVM.contoso.com
        default_domain= contoso.com
    }
    
    [domain_realm]
    .contoso.com = CONTOSO.COM
    contoso.com = CONTOSO.COM
    
  2. SQL Server'ı etki alanı denetleyicilerinin bir alt kümesiyle iletişim kuracak şekilde kısıtlayabilirsiniz; bu, DNS yapılandırmanız SQL Server'ın başvurması gerekenden daha fazla etki alanı denetleyicisi döndürürse kullanışlıdır. Linux üzerinde SQL Server, SQL Server'ın Lightweight Directory Access Protocol (LDAP) araştırması yaparken round-robin tarzında iletişim kurduğu alan kontrolörlerinin listesini belirlemenize olanak tanır.

    Bu iki adımı tamamla. İlk olarak, krb5.conf ihtiyacınız olan alan kontrolörlerini ekleyerek değiştirin, ön ekte .kdc =

    [realms]
    CONTOSO.COM = {
      kdc = kdc1.contoso.com
      kdc = kdc2.contoso.com
      ..
      ..
    }
    

    Dosya, krb5.conf yaygın bir Kerberos istemci yapılandırma dosyasıdır, bu yüzden bu dosyada yaptığınız değişiklikler SQL Server'ın yanı sıra diğer hizmetleri de etkiler. Herhangi bir değişiklik yapmadan önce alan adınız yöneticinizle görüşün.

    Ayarı network.enablekdcfromkrb5conf etkinleştirin mssql-confve ardından SQL Server'ı yeniden başlatın:

    sudo /opt/mssql/bin/mssql-conf set network.enablekdcfromkrb5conf true
    sudo systemctl restart mssql-server
    

Kerberos sorunlarını giderme

Aşağıdaki detaylar, Active Directory kimlik doğrulama sorunlarını çözmenize ve belirli hata mesajlarını belirlemenize yardımcı olur.

Kerberos İzleme

Kullanıcıyı, SPN'leri ve tuş sekmelerini oluşturup yapılandırdıktan mssql-confsonra Active Directory yapılandırmasını doğrulayın.

Linux üzerinde SQL Server yapılandırmasını doğrulamak için, ayrıcalıklı hesabı kullanarak Kerberos TGT'yi alın veya yenileyin. Konsoldaki Kerberos iz mesajlarını göstermek için bu komutu çalıştırın (stdout):

root@sqllinux mssql# KRB5_TRACE=/dev/stdout kinit -kt /var/opt/mssql/secrets/mssql.keytab sqluser

Herhangi bir sorun yoksa aşağıdaki örneğe benzer bir çıktı görmeniz gerekir. Eğer yoksa, iz, hangi adımların gözden geçirileceğine dair bağlam sağlar.

3791545 1640722276.100275: Getting initial credentials for sqluser@CONTOSO.COM
3791545 1640722276.100276: Looked up etypes in keytab: aes256-cts, aes128-cts
3791545 1640722276.100278: Sending unauthenticated request
3791545 1640722276.100279: Sending request (202 bytes) to CONTOSO.COM
3791545 1640722276.100280: Initiating TCP connection to stream 10.0.0.4:88
3791545 1640722276.100281: Sending TCP request to stream 10.0.0.4:88
3791545 1640722276.100282: Received answer (185 bytes) from stream 10.0.0.4:88
3791545 1640722276.100283: Terminating TCP connection to stream 10.0.0.4:88
3791545 1640722276.100284: Response was from master KDC
3791545 1640722276.100285: Received error from KDC: -1765328359/Additional pre-authentication required
3791545 1640722276.100288: Preauthenticating using KDC method data
3791545 1640722276.100289: Processing preauth types: PA-PK-AS-REQ (16), PA-PK-AS-REP_OLD (15), PA-ETYPE-INFO2 (19), PA-ENC-TIMESTAMP (2)
3791545 1640722276.100290: Selected etype info: etype aes256-cts, salt "CONTOSO.COMsqluser", params ""
3791545 1640722276.100291: Retrieving sqluser@CONTOSO.COM from /var/opt/mssql/secrets/mssql.keytab (vno 0, enctype aes256-cts) with result: 0/Success
3791545 1640722276.100292: AS key obtained for encrypted timestamp: aes256-cts/E84B
3791545 1640722276.100294: Encrypted timestamp (for 1640722276.700930): plain 301AA011180F32303231313XXXXXXXXXXXXXXXXXXXXXXXXXXXXX, encrypted 333109B95898D1B4FC1837DAE3E4CBD33AF8XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
3791545 1640722276.100295: Preauth module encrypted_timestamp (2) (real) returned: 0/Success
3791545 1640722276.100296: Produced preauth for next request: PA-ENC-TIMESTAMP (2)
3791545 1640722276.100297: Sending request (282 bytes) to CONTOSO.COM
3791545 1640722276.100298: Initiating TCP connection to stream 10.0.0.4:88
3791545 1640722276.100299: Sending TCP request to stream 10.0.0.4:88
3791545 1640722276.100300: Received answer (1604 bytes) from stream 10.0.0.4:88
3791545 1640722276.100301: Terminating TCP connection to stream 10.0.0.4:88
3791545 1640722276.100302: Response was from master KDC
3791545 1640722276.100303: Processing preauth types: PA-ETYPE-INFO2 (19)
3791545 1640722276.100304: Selected etype info: etype aes256-cts, salt "CONTOSO.COMsqluser", params ""
3791545 1640722276.100305: Produced preauth for next request: (empty)
3791545 1640722276.100306: AS key determined by preauth: aes256-cts/E84B
3791545 1640722276.100307: Decrypted AS reply; session key is: aes256-cts/05C0
3791545 1640722276.100308: FAST negotiation: unavailable
3791545 1640722276.100309: Initializing KCM:0:37337 with default princ sqluser@CONTOSO.COM
3791545 1640722276.100310: Storing sqluser@CONTOSO.COM -> krbtgt/CONTOSO.COM@CONTOSO.COM in KCM:0:37337
3791545 1640722276.100311: Storing config in KCM:0:37337 for krbtgt/CONTOSO.COM@CONTOSO.COM: pa_type: 2
3791545 1640722276.100312: Storing sqluser@CONTOSO.COM -> krb5_ccache_conf_data/pa_type/krbtgt/CONTOSO.COM@CONTOSO.COM@X-CACHECONF: in KCM:0:37337

$ sudo klist
Ticket cache: KCM:0:37337
Default principal: sqluser@CONTOSO.COM
Valid starting Expires Service principal
12/28/2021 20:11:16 12/29/2021 06:11:16 krbtgt/CONTOSO.COM@CONTOSO.COM
renew until 01/04/2022 20:11:16

Kerberos ve güvenlik tabanlı PAL günlüğünü etkinleştirme

PAL'de (Platform Soyutlama Katmanı) belirli hata mesajlarını belirlemek için etkinleştirin security.kerberos ve security.ldap loglayın. logger.ini Aşağıdaki içerikle bir dosya oluşturun /var/opt/mssql/ve ardından başlatma hatalarını yakalamak için SQL Server'ı yeniden başlatın. Başarısızlığı tekrar üre. PAL Active Directory hatasını kaydeder ve hata ayıklama mesajlarını 'ye gönderir/var/opt/mssql/log/security.log.

[Output:security]
Type = File
Filename = /var/opt/mssql/log/security.log
[Logger]
Level = Silent
[Logger:security.kerberos]
Level = Debug
Outputs = security
[Logger:security.ldap]
Level = Debug
Outputs = security

SQL Server, logger değişikliklerini logger.ini yeniden başlatmadan alır, ancak SQL Server açılışında Active Directory hizmetinin başlatılması sırasında yaşanan hatalar fark edilmez. SQL Server'ı yeniden başlatmak tüm hata mesajlarını yakalar.

içindeki değişiklikleri logger.inikaldırana kadar güvenlik günlüğü sürücüye yazmaya devam eder. Sorunu tespit edip çözdüğünüzde devre security.kerberos dışı bırakın ve security.ldap kaydedin, böylece diskte yer tükenmesini önleyin.

PAL günlükçü aşağıdaki biçimde günlük dosyaları oluşturur:

<DATETIME> <Log level> [<logger>] <<process/thread identifier>> <message>

Örneğin, günlükten örnek bir satır aşağıda verilmiştir:

12/28/2021 13:56:31.609453055 Error [security.kerberos] <0003753757/0x00000324> Request ticket server MSSQLSvc/sql.contoso.com:1433@CONTOSO.COM kvno 3 enctype aes256-cts found in keytab but cannot decrypt ticket

PAL logunu etkinleştirip sorunu tekrar oluşturduğunuzda, log seviyesi Errorolan ilk mesajı arayın. Hatayı bulmak için aşağıdaki tabloyu kullanın ve sorunu çözmek için rehber ve önerileri izleyin.

Genel hata iletileri

Hata iletisi: "Oturum açılamadı. Giriş güvenilmeyen bir alan adından alınmıştır ve Entegre kimlik doğrulama ile kullanılamaz"

Olası neden

Active Directory kimlik doğrulamasını yapılandırdıktan sonra Active Directory hesabıyla giriş yapmaya çalıştığınızda bu hatayla karşılaşıyorsunuz.

Yönerge

Bu genel hata iletisi, belirli bir hatayı tanımlamak için PAL günlüğünü etkinleştirmenizi gerektirir.

Her hatanın olası nedenini belirlemek için aşağıdaki yaygın hatalar listesine bakın ve sorunu çözmek için sorun giderme rehberini izleyin.

Hata iletileri
'CONTOSO\user' Windows NT kullanıcısı veya grubu bulunamadı
Hata dolayısıyla kısa etki alanı adı sorgulanamadı
Hata nedeniyle konak ana bilgisayar <adı> için rDNS araması gerçekleştirilemedi
rDNS araması tarafından FQDN döndürülmedi
LDAP sunucusuna bağlanılamadı
Anahtar tablosu girdisi bulunamadı
<Principal> için anahtar tablo girdisi bulunamadı
anahtar sekmesinde istek anahtar sunucusu <sorumlusu> bulunamadı (anahtar kvno <KVNO>)
Anahtar sekmesinde bulunan ancak şifreleme türü ile eşleşmeyen istek bilet sunucusu ana ismi kvno KVNO
anahtar sekmesinde bulunan ancak anahtarın şifresini çözemeyen istek anahtar sunucusu <sorumlusu> kvno <KVNO> enctype <şifreleme türü>

Hata iletisi: Windows NT kullanıcısı veya grubu 'CONTOSO\user' bulunamadı

Olası neden

Windows oturum açma bilgilerini oluşturmaya çalışırken veya grup yenilemesi sırasında bu hatayla karşılaşabilirsiniz.

Yönerge

Sorunu doğrulamak için "Giriş başarısız oldu. Oturum açma bilgisi güvenilmeyen bir etki alanından geliyor ve Tümleşik kimlik doğrulaması ile kullanılamaz. (Microsoft SQL Server, Hata: 18452)" ve PAL logunu etkinleştirerek belirli hatayı tespit edin ve buna göre sorun giderin.

Hata iletisi: "Bir hata nedeniyle kısa domain adı sorgulanamadı"

Olası neden

Active Directory oturum açma bilgisi oluşturmak için Transact-SQL söz dizimi şöyledir:

CREATE LOGIN [CONTOSO\user]
    FROM WINDOWS;

Komutta NetBIOS adı (CONTOSO) gereklidir, ancak LDAP bağlantısı yapılırken alan (contoso.com) alan adının FQDN'si arka uçta sağlanmalıdır. Bu dönüşümü gerçekleştirmek için, bir etki alanı denetleyicisinin IP'sine ulaşmak amacıyla CONTOSO üzerinde bir DNS araması yapılır ve bu IP daha sonra LDAP sorguları için bağlanılabilir.

Yönerge

"Hata nedeniyle kısa alan adı arayamadı" hata mesajı, for contoso için alan kontrolcüsünün IP adresine çözüm bulmadığını gösteriyornslookup. NetBIOS ve alan adı eşleşmelerini doğrulamak için DNS ve ters DNS sorgulamalarınınslookup inceleyin.

Hata iletileri: "Hata nedeniyle ana bilgisayar <adı> için rDNS araması gerçekleştirilemedi" veya "RDNS araması tarafından FQDN döndürülmedi"

Olası neden

Bu hata mesajları genellikle tüm alan kontrolörleri için ters DNS kayıtlarının (PTR kayıtları) olmadığını gösterir.

Yönerge

DNS'yi denetleyin ve DNS aramalarını ters çevirin. rDNS girişi olmayan alan kontrolörlerini belirledikten sonra iki seçeneğiniz vardır:

  • Tüm etki alanı denetleyicileri için rDNS girdileri ekleme

    Bu ayar SQL Server ayarı değildir ve bunu alan seviyesinde yapılandırmanız gerekir. Alan adının geri dönen tüm alan kontrolörleri nslookup için gerekli PTR kayıtlarını oluşturmak üzere alan adınız yönetim ekibinizle çalışmanız gerekebilir.

  • SQL Server'ı etki alanı denetleyicilerinin bir alt kümesiyle kısıtlama

    Eğer tüm geri dönen alan alan kontrolörleri için PTR kayıtları ekleyemezseniz, SQL Server'ı alan kontrolörlerinin bir alt kümesiyle sınırlayabilirsiniz.

Hata iletisi: "LDAP sunucusuna bağlanılamadı ldap://CONTOSO.COM:3268: Yerel Hata"

Olası neden

OpenLDAP'den gelen bu genel hata normalde iki anlama gelir:

  • Kimlik bilgisi yok
  • rDNS sorunları

Hata iletisinin bir örneği aşağıda verilmişti:

12/09/2021 14:32:11.319933684 Error [security.ldap] <0000000142/0x000001c0> Failed to bind to LDAP server ldap://[CONTOSO.COM:3268]: Local error

Yönerge

  • Kimlik bilgisi yok

    LDAP bağlantıları için kimlik bilgileri yüklenmezse diğer hata mesajları ilk olarak görünür. PAL kaydını etkinleştirin ve hata günlüğünde hata mesajlarını kontrol edin. Başka hata yoksa, bu büyük olasılıkla bir kimlik bilgisi sorunu değildir. Bir hata bulursanız, devam etmeden önce düzeltin. Çoğu durumda, bu makalenin ele aldığı hata mesajlarından biridir.

  • rDNS sorunları

    DNS'yi denetleyin ve DNS aramalarını ters çevirin.

    OpenLDAP kütüphanesi bir alan kontrolcüsüne bağlandığında, ya tam nitelikli alan adını (FQDN) sağlar, bu örnekte contoso.com, ya da DC'nin FQDN'si (kdc1.contoso.com). Bağlantı kurulduktan sonra (ancak başarı çağrıya geri dönmeden önce), OpenLDAP kütüphanesi bağlandığı sunucunun IP adresini kontrol eder. Daha sonra ters DNS araması yapar ve bağlandığı sunucunun adının (kdc1.contoso.com) istenen alan adıyla (contoso.com) eşleşip eşleşmediğini kontrol eder. Eşleşmezse, OpenLDAP kütüphanesi bağlantıyı bir güvenlik önlemi olarak başarısız kılar. Bu uyumsuzluk, rDNS ayarlarının Linux üzerinde SQL Server için önemli olmasının nedenlerinden biri ve bu makalenin odak noktasıdır.

Hata iletisi: "Anahtar tablosu girdisi bulunamadı"

Olası neden

Bu hata, keytab dosyasındaki erişim sorunlarını veya keytab'taki eksik girişleri gösterir.

Yönerge

Anahtar sekmesi dosyasının doğru erişim düzeyine ve izinlere sahip olduğundan emin olun. Keytab dosyasının varsayılan konumu ve adı ./var/opt/mssql/secrets/mssql.keytab Secrets klasörü altındaki tüm dosyaların mevcut izinlerini görmek için şu komutu çalıştırın:

sudo ls -lrt /var/opt/mssql/secrets

Keytab dosyasında yetkiler ve erişim seviyesini ayarlamak için bu komutları kullanın:

sudo chown mssql /var/opt/mssql/secrets/mssql.keytab
sudo chmod 440 /var/opt/mssql/secrets/mssql.keytab

Anahtar sekmesi girdilerini listeleme ve doğru izinleri ayarlama hakkında daha fazla bilgi için önceki Anahtar sekmesi dosyasını ve izinlerini denetle bölümüne bakın. O bölümdeki koşullardan hiçbirini karşılamazsanız, bu hatayı veya eşdeğer bir hatayı göreceksiniz: "Key table entry not found".

Hata iletisi: "Sorumlu< için >anahtar tablosu girdisi bulunamadı"

Olası neden

Keytab'dan kimlik bilgilerini <principal> almaya çalıştığınızda, geçerli bir giriş bulmuyorsunuz.

Yönerge

Tuş sekmesindeki tüm girişleri listelemek için bu makalenin Anahtar sekmesi dosyasını ve izinlerini denetle bölümünü izleyin. <principal> mevcut olduğundan emin olun. Bu durumda, ana hesap genellikle SPN'leri kaydettiğiniz hesaptır network.privilegedadaccount . Eğer değilse, komutla adutil ekle. Daha fazla bilgi için bkz. Linux üzerinde SQL Server ile Active Directory kimlik doğrulamasını yapılandırmak için adutil kullanma.

Hata iletisi: "istek bilet sunucusu <prensip> anahtar sekmesinde bulunamadı (bilet kvno <KVNO>)"

Olası neden

Bu hata, SQL Server'ın belirtilen Anahtar Sürüm Numarası (KVNO) ile istenen bilet için bir keytab girişi bulamadığını gösterir.

Yönerge

Tuş sekmesindeki tüm girişleri listelemek için bu makalenin Anahtar sekmesi dosyasını ve izinlerini denetle bölümünü izleyin. Eğer KVNO ile eşleşen <principal> bir hata mesajı bulamazsanız, keytab dosyasını güncelleyerek bu girişi ekleyin ve o bölümdeki adımları izleyin.

Dc'den en son KVNO'ya ulaşmak için aşağıdaki komutu da çalıştırabilirsiniz. Bu komutu çalıştırmadan önce, Kerberos TGT'sini komutla kinit edinin veya yenileyin. Daha fazla bilgi için bkz. ADutil kullanarak SQL Server için Active Directory kullanıcısı oluşturma ve Hizmet Asıl Adını (SPN) ayarlama.

kvno MSSQLSvc/<hostname>

Hata iletisi: "İstek bileti sunucusu <prensibi> kvno <KVNO> anahtar sekmesinde bulundu, ancak şifreleme tipi <şifreleme türüyle> bulunamadı"

Olası neden

Bu hata, SQL Server'ın anahtar sekmesinin istemcinin talep ettiği şifreleme tipini içermediği anlamına gelir.

Yönerge

Doğrulama için, bu makalenin Check keytab dosyası ve izinleri bölümünü takip ederek keytab'taki tüm girişleri listeleyin. Eğer ana madde, KVNO ve şifreleme tipine uyan bir hata mesajı bulamazsanız, keytab dosyasını güncelleyerek bu girişi ekleyin ve o bölümdeki adımları izleyin.

Hata iletisi: "İstek bileti sunucusu <sorumlusu> kvno <KVNO> enctype <şifreleme türü> anahtar sekmesinde bulundu ancak biletin şifresi çözülemiyor"

Olası neden

Bu hata mesajı, SQL Server'ın gelen kimlik doğrulama isteğini şifre çözmek için keytab dosyasından bir kimlik bilgisi kullanamadığını gösterir. Yanlış bir şifre genellikle bu hataya neden olur.

Yönerge

Doğru şifreyle keysekmeyi yeniden oluşturun. Eğer , adutilkullanırsanız, doğru şifreyle anahtar sekmesini oluşturun ve Tutorial: Linux üzerinde SQL Server ile Active Directory doğrulamasını yapılandırmak için adutil kullanın.

Ortak bağlantı noktaları

Bu tablo, Linux üzerinde SQL Server'un Active Directory kimlik doğrulamasını yapılandırmak ve yönetmek için kullandığı yaygın portları gösterir.

Active Directory Hizmeti Port
DNS 53
LDAP 389
LDAPS 636
Kerberos 88