Aracılığıyla paylaş


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 geçerli kullanıcı, , mssql.confHizmet Asıl Adı (SPN) ve bölge ayarlarını doğrulamanız gerekir.

  1. Kerberos TGT (bilet verme bileti) alın veya yenileyin: kinit kullanarak

    kinit privilegeduser@CONTOSO.COM
    
  2. Aşağıdaki komutu çalıştırarak bu komutu çalıştıran kullanıcının mssql.keytab erişimi olduğunu doğrulayın.

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

    validate-ad-config komutu hakkında daha fazla bilgi için, /opt/mssql/bin/mssql-conf validate-ad-config --help komutunu kullanarak yardımı görüntüleyin.

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çlarda listelenen her IP adresi için ters DNS (rDNS) araması yapın. Uygun olduğunda IPv4 ve IPv6 adreslerini eklemeyi unutmayın.

    nslookup <IPs returned from the above commands>
    

    Tümü döndürmelidir <hostname>.contoso.com. Böyle bir durum söz konusu değilse, Active Directory'de oluşturulan PTR (işaretçi) kayıtlarını denetleyin.

    rDNS'nin çalışmasını sağlamak için etki alanı yöneticinizle birlikte çalışmanız gerekebilir. Döndürülen tüm IP adresleri için PTR girdileri ekleyemiyorsanız, SQL Server'ı etki alanı denetleyicilerinin bir alt kümesiyle de 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. Anahtar sekmesi (anahtar tablosu) dosyasını oluşturduğunuzu ve mssql-conf dosyasının uygun izinlere sahip doğru dosyayı kullanacak şekilde yapılandırıldığından emin olun. 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 anahtar sekmesi girdilerini oluştururken parolaları doğru yazmıyorsanız, Active Directory kimlik doğrulamasını kullanarak oturum açmaya ç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ı hesap (network.privilegedadaccount içindeki ayarla eşleşen) ve SQL Server'ın ana bilgisayar adı varsayılan bağlantı noktasında sqllinux.contoso.comdinliyordur1433.

    $ 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 mssql.keytab
    Keytab name: FILE: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 örnek bir krb5.conf dosyadır. 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, Basit Dizin Erişim Protokolü (LDAP) araması gerçekleştirirken SQL Server'ın döngüsel sırayla görüşeceği etki alanı denetleyicilerinin bir listesini belirtmenize olanak tanır.

    Tamamlamanız gereken iki adım vardır. İlk olarak, kdc = önüne ihtiyacınız olan herhangi bir sayıda etki alanı denetleyicisi ekleyerek krb5.conf değiştirin.

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

    Bunun yaygın bir Kerberos istemci yapılandırma dosyası olduğunu unutmayın krb5.conf , bu nedenle bu dosyada yaptığınız tüm değişiklikler SQL Server'a ek olarak diğer hizmetleri de etkiler. Herhangi bir değişiklik yapmadan önce etki alanı yöneticinize başvurun.

    Ardından network.enablekdcfromkrb5conf kullanarak ayarı etkinleştirebilir ve ardından SQL Server'ı yeniden başlatabilirsiniz:

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

Kerberos sorunlarını giderme

Active Directory kimlik doğrulaması sorunlarını gidermenize ve belirli hata iletilerini tanımlamanıza yardımcı olması için aşağıdaki ayrıntılara bakın.

Kerberos İzleme

Kullanıcı, SPN'ler ve tuş sekmelerini oluşturduktan ve Linux'ta SQL Server için Active Directory yapılandırmasının doğru olduğunu görmek için mssql-conf'u yapılandırdıktan sonra, şu komutu kullanarak Kerberos TGT'yi ayrıcalıklı hesapla edinmeye veya yenilemeye çalışırken konsolda Kerberos izleme iletilerini görüntüleyebilirsinizstdout:

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. Aksi takdirde iz, hangi adımları gözden geçirmeniz gerektiği konusunda 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 iletilerini tanımlamak için security.kerberos ve security.ldap için günlüğe kaydı etkinleştirebilirsiniz. adresinde aşağıdaki içeriğe sahip bir logger.ini dosya oluşturun, SQL Server'ı /var/opt/mssql/yeniden başlatın ve ardından hatayı yeniden oluşturun. PAL'nin Active Directory hatası ve hata ayıklama iletileri oturumuna /var/opt/mssql/log/security.logkaydedilir.

[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'ın günlükçü değişikliklerini logger.ini öğesinden alması için yeniden başlatılması gerekmez, ancak SQL Server başlatılırken Active Directory hizmeti başlatıldığında aksi takdirde fark edilmeyecek hatalar oluşabilir. SQL Server'ın yeniden başlatılması tüm hata iletilerinin yakalanmasını sağlar.

içindeki değişiklikleri logger.inikaldırana kadar güvenlik günlüğü sürücüye yazmaya devam eder. Sorunu tanımlayıp çözdükten sonra, security.kerberos ve security.ldap günlüğe kaydetmeyi devre dışı bırakmayı unutmayın, böylece sürücüde yer bitmesini önleyebilirsiniz.

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 günlüğünü etkinleştirdikten ve sorunu yeniden oluşturduktan sonra, günlük düzeyi Errorolan ilk iletiyi arayın, ardından hatayı bulmak için aşağıdaki tabloyu kullanın ve sorunu gidermek ve çözmek için kılavuzu ve öneriyi izleyin.

Genel hata iletileri

Hata iletisi: "Oturum açılamadı. Oturum açma bilgisi güvenilmeyen bir etki alanından geliyor ve Tümleşik kimlik doğrulaması ile kullanılamaz."

Olası nedeni

Active Directory kimlik doğrulamayı yapılandırdıktan sonra bir Active Directory hesabı kullanarak oturum açmayı denediğinizde bu hatayla karşılaşılır.

Guidance

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, ardından sorunu çözmek için sorun giderme kılavuzunu 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ı nedeni

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

Guidance

Sorunu doğrulamak için "Oturum açma başarısız oldu" belgelendirildiği şekilde ilerleyin. 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)" ayarı, belirli bir hatayı belirlemek ve uygun şekilde sorun gidermek için PAL günlüğünü etkinleştirir .

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

Olası nedeni

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ı gerçekleştirirken arka uçta etki alanının (contoso.com) FQDN'sinin sağlanması gerekir. 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.

Guidance

"Hata nedeniyle kısa etki alanı adı aranamadı" hata iletisi, için nslookup etki alanı denetleyicisinin IP adresine çözümlenmediğini gösterircontoso. Hem NetBIOS hem de etki alanı adının eşleşmesi gerektiğini onaylamak için nslookup gözden geçirmeniz gerekir.

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ı nedeni

Bu hata iletisi genellikle ters DNS kayıtlarının (PTR kayıtları) tüm etki alanı denetleyicileri için mevcut olmadığını gösterir.

Guidance

DNS'yi denetleyin ve DNS aramalarını ters çevirin. rDNS girdileri olmayan etki alanı denetleyicileri belirlendikten sonra iki seçenek vardır:

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

    Bu ayar bir SQL Server ayarı değildir ve etki alanı düzeyinde yapılandırılması gerekir. Etki alanı adı üzerinde nslookup komutu çalıştırıldığında döndürülen tüm etki alanı denetleyicileri için gerekli PTR kayıtlarını oluşturmak amacıyla etki alanı yönetim ekibinizle birlikte çalışmanız gerekebilir.

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

    Döndürülen tüm etki alanı denetleyicileri için PTR kayıtları eklemek mümkün değilse , SQL Server'ı etki alanı denetleyicilerinin bir alt kümesiyle sınırlayabilirsiniz.

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

Olası nedeni

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

  • Kimlik bilgisi yok
  • rDNS sorunları

Hata iletisinin bu tür 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

Guidance

  • Kimlik bilgisi yok

    LDAP bağlantıları için kimlik bilgileri yüklenmiyorsa önce diğer hata iletileri oluşturulur. PAL günlüğünü etkinleştirmeniz ve bu hata mesajından önceki hata iletilerini kontrol etmek için hata günlüğünü incelemeniz gerekir. Başka hata yoksa, bu büyük olasılıkla bir kimlik bilgisi sorunu değildir. Bir tane bulunursa, gördüğünüz hata iletisini düzeltmeye çalışın. Çoğu durumda, bu makalede ele alınan hata iletilerinden biridir.

  • rDNS sorunları

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

    OpenLDAP kitaplığı bir etki alanı denetleyicisine bağlandığında, bu örnekte contoso.comolan tam etki alanı adı (FQDN) veya DC'nin FQDN'si (kdc1.contoso.com) sağlanır. Bağlantı kurulduktan sonra (ancak arayana başarı döndürmeden önce), OpenLDAP kitaplığı bağlı olduğu sunucunun IP'sini denetler. Ardından ters DNS araması gerçekleştirir ve (kdc1.contoso.com) ile bağlantılı sunucunun adının, bağlantının istenildiği etki alanıyla (contoso.com) eşleşip eşleşmediğini denetler. Eşleşmezse, OpenLDAP kütüphanesi bağlantıyı bir güvenlik önlemi olarak başarısız kılar. Bu, rDNS ayarlarının Linux üzerinde SQL Server için bu kadar önemli olmasının bir parçasıdır ve bu makalenin odak noktasıdır.

Hata iletisi: "Anahtar tablosu girdisi bulunamadı"

Olası nedeni

Bu hata, anahtar sekmesi dosyasıyla ilgili erişim sorunlarını veya anahtar sekmesinde gerekli tüm girişlerin bulunmadığını gösterir.

Guidance

Anahtar sekmesi dosyasının doğru erişim düzeyine ve izinlere sahip olduğundan emin olun. Varsayılan konum ve anahtar sekmesi dosyasının adıdır /var/opt/mssql/secrets/mssql.keytab. Gizli diziler klasörünün altındaki tüm dosyalardaki geçerli izinleri görüntülemek için şu komutu çalıştırabilirsiniz:

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

Anahtar sekmesi dosyasında izinleri ve erişim düzeyini ayarlamak için şu komutları kullanabilirsiniz:

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. Bu bölümdeki koşullardan herhangi biri karşılanmazsa şu veya eşdeğer hatayı görürsünüz: "Key table entry not found".

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

Olası nedeni

Anahtar tablosundan <principal> kimlik bilgilerini almaya çalışırken uygun bir girdi bulunamadı.

Guidance

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, asıl hesap genellikle network.privilegedadaccount SPN'lerin kaydedildiği hesaptır. Değilse adutil komutunu kullanarak ekleyin. 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ı nedeni

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

Guidance

Tuş sekmesindeki tüm girişleri listelemek için bu makalenin Anahtar sekmesi dosyasını ve izinlerini denetle bölümünü izleyin. ve KVNO ile eşleşen <principal> bir hata iletisi bulamazsanız, bu bölümde belirtilen adımları kullanarak anahtar sekmesi dosyasını güncelleştirerek bu girdiyi ekleyin.

Dc'den en son KVNO'ya ulaşmak için aşağıdaki komutu da çalıştırabilirsiniz. Bu komutu çalıştırmadan önce kinit komutunu kullanarak Kerberos TGT'yi edinmeniz veya yenilemeniz gerekir. 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ı nedeni

Bu hata, istemci tarafından istenen şifreleme türünün SQL Server'ın anahtar sekmesinde bulunmadığı anlamına gelir.

Guidance

Doğrulamak için, bu belgenin Anahtar sekmesi dosyasını ve izinlerini denetle bölümünü izleyerek anahtar sekmesindeki tüm girişleri listeleyin. Eğer temel, KVNO ve şifreleme türüyle eşleşen bir hata mesajı bulamazsanız, bu girdiyi bu bölümde belirtilen adımları kullanarak keytab dosyasını güncelleyerek ekleyin.

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

Olası nedeni

Bu hata, SQL Server'ın gelen kimlik doğrulama isteğinin şifresini çözmek için anahtar sekmesi dosyasından bir kimlik bilgisi kullanalamadığını gösterir. Hata genellikle yanlış parolanın sonucudur.

Guidance

Doğru parolayı kullanarak tuş sekmesini yeniden oluşturun. adutil kullanıyorsanız, Adutil'i kullanarak Linux üzerinde SQL Server ile Active Directory kimlik doğrulamasını yapılandırma öğreticisindeki adımları izleyerek doğru parolayla keytab oluşturun.

Ortak bağlantı noktaları

Bu tabloda, Active Directory kimlik doğrulamasını yapılandırmak ve yönetmek için Linux üzerinde SQL Server tarafından kullanılan yaygın bağlantı noktaları gösterilmektedir.

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