Memecahkan masalah autentikasi Direktori Aktif untuk SQL Server di Linux dan kontainer

Berlaku untuk:SQL Server di Linux

Artikel ini membantu Anda memecahkan masalah autentikasi Active Directory Domain Services dengan SQL Server di Linux dan kontainer. Ini termasuk pemeriksaan prasyarat dan tips untuk konfigurasi Direktori Aktif yang berhasil, dan daftar kesalahan umum dan langkah-langkah pemecahan masalah.

Memvalidasi konfigurasi saat ini

Sebelum Anda mulai memecahkan masalah, validasi pengaturan pengguna saat ini, mssql.conf, Service Principal Name (SPN), dan realm.

  1. Dapatkan atau perbarui Kerberos TGT (tiket pemberian tiket) dengan kinit:

    kinit privilegeduser@CONTOSO.COM
    
  2. Jalankan perintah berikut, dan pastikan pengguna yang menjalankannya memiliki akses ke mssql.keytab:

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

    Untuk informasi lebih lanjut tentang perintah ini validate-ad-config , jalankan /opt/mssql/bin/mssql-conf validate-ad-config --help.

Pencarian DNS dan pencarian terbalik DNS

  1. Pencarian DNS pada nama domain dan nama NetBIOS harus mengembalikan alamat IP yang sama, yang biasanya cocok dengan alamat IP untuk pengendali domain (DC). Jalankan perintah ini dari komputer host SQL Server.

    nslookup contoso
    nslookup contoso.com
    

    Jika alamat IP tidak cocok, lihat Bergabung SQL Server di host Linux ke domain Direktori Aktif untuk memperbaiki pencarian DNS dan komunikasi dengan DC.

  2. Lakukan pencarian DNS terbalik (rDNS) untuk setiap alamat IP dari hasil sebelumnya. Sertakan alamat IPv4 dan IPv6 jika berlaku.

    nslookup <IPs returned from the above commands>
    

    Semua harus mengembalikan <hostname>.contoso.com. Jika tidak, periksa catatan PTR (pointer) di Direktori Aktif.

    Anda mungkin harus bekerja dengan administrator domain Anda agar rDNS berfungsi. Jika Anda tidak dapat menambahkan entri PTR untuk semua alamat IP yang dikembalikan, Anda juga dapat membatasi SQL Server hanya pada subset domain controller. Perubahan ini memengaruhi layanan lain yang menggunakan krb5.conf pada host.

    Untuk informasi selengkapnya tentang REVERSE DNS, lihat Apa itu REVERSE DNS?

Periksa file keytab dan izin

  1. Periksa bahwa Anda telah membuat file keytab (tabel kunci), dan bahwa Anda telah mengonfigurasi mssql-conf untuk menggunakan file yang benar dengan izin yang sesuai. Keytab harus dapat diakses oleh mssql akun pengguna. Untuk informasi selengkapnya, lihat Menggunakan adutil untuk mengonfigurasi autentikasi Direktori Aktif dengan SQL Server di Linux.

  2. Pastikan Anda dapat mencantumkan konten keytab, dan Anda menambahkan SPN, port, jenis enkripsi, dan akun pengguna yang benar. Jika Anda tidak mengetik kata sandi dengan benar saat membuat SPN dan entri keytab, Anda akan mengalami kesalahan saat mencoba masuk dengan autentikasi Direktori Aktif.

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

    Contoh keytab yang berfungsi adalah sebagai berikut. Contohnya menggunakan dua jenis enkripsi, tetapi Anda hanya dapat menggunakan satu atau beberapa jenis enkripsi yang didukung di lingkungan Anda. Dalam contoh, sqluser@CONTOSO.COM adalah akun istimewa (yang sesuai dengan pengaturan network.privilegedadaccount di mssql-conf), dan nama host untuk SQL Server adalah sqllinux.contoso.com, yang mendengarkan pada port default 1433.

    $ 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)
    

Memeriksa informasi realm di krb5.conf

  1. Di krb5.conf (terletak di /etc/krb5.conf), periksa apakah Anda memberikan nilai untuk realm default, informasi realm, dan pemetaan domain ke realm. Tinjau file contoh krb5.conf berikut. Untuk informasi selengkapnya, lihat Memahami autentikasi Direktori Aktif untuk SQL Server di Linux dan kontainer.

    [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. Anda dapat membatasi SQL Server untuk menghubungi subset pengendali domain, yang berguna jika konfigurasi DNS Anda mengembalikan lebih banyak pengontrol domain daripada yang perlu dihubungi SQL Server. SQL Server on Linux memungkinkan Anda menentukan daftar domain controller yang dihubungi SQL Server secara round-robin saat melakukan pencarian Lightweight Directory Access Protocol (LDAP).

    Selesaikan dua langkah ini. Pertama, modifikasi krb5.conf dengan menambahkan domain controller yang Anda butuhkan, dengan awalan .kdc =

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

    File ini krb5.conf adalah file konfigurasi klien Kerberos yang umum, sehingga perubahan apa pun yang Anda lakukan pada file ini akan memengaruhi layanan lain selain SQL Server. Sebelum melakukan perubahan apa pun, konsultasikan dengan administrator domain Anda.

    Aktifkan network.enablekdcfromkrb5conf pengaturan dengan mssql-conf, lalu restart SQL Server:

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

Memecahkan masalah Kerberos

Detail berikut membantu Anda memecahkan masalah autentikasi Direktori Aktif dan mengidentifikasi pesan kesalahan tertentu.

Melacak Kerberos

Setelah Anda membuat user, SPN, dan keytab, serta mengonfigurasimssql-conf, verifikasi konfigurasi Direktori Aktif.

Untuk memverifikasi konfigurasi SQL Server on Linux, gunakan akun hak istimewa untuk mendapatkan atau memperbarui Kerberos TGT. Jalankan perintah ini untuk menampilkan pesan jejak Kerberos di konsol (stdout):

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

Jika tidak ada masalah, Anda akan melihat output yang mirip dengan sampel berikut. Jika tidak, trace memberikan konteks tentang langkah-langkah yang harus ditinjau.

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

Mengaktifkan Kerberos dan pengelogan PAL berbasis keamanan

Untuk mengidentifikasi pesan kesalahan spesifik di PAL (Platform Abstraction Layer), aktifkan security.kerberos dan security.ldap loging. Buat logger.ini file dengan konten berikut di , /var/opt/mssql/lalu restart SQL Server untuk menangkap kesalahan inisialisasi. Ulangi kegagalan. PAL mencatat pesan error dan debug Direktori Aktif ke /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 menangkap perubahan logger tanpa logger.ini restart, tetapi kegagalan selama inisialisasi layanan Direktori Aktif pada startup SQL Server biasanya tidak terdeteksi. Restart SQL Server menangkap semua pesan kesalahan.

Log keamanan akan terus menulis ke drive sampai Anda menghapus perubahan di logger.ini. Nonaktifkan security.kerberos dan security.ldap pencatatan setelah Anda mengidentifikasi dan menyelesaikan masalah, untuk mencegah kehabisan ruang di drive.

Pencatat PAL menghasilkan file log dalam format berikut:

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

Misalnya, baris sampel dari log mengikuti:

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

Setelah Anda mengaktifkan pencatatan PAL dan mereproduksi masalah, cari pesan pertama dengan tingkat log sebesar Error. Gunakan tabel berikut untuk menemukan kesalahan dan ikuti panduan serta rekomendasi untuk memecahkan masalah dan menyelesaikan masalah.

Pesan kesalahan umum

Pesan kesalahan: "Gagal masuk. Login berasal dari domain yang tidak terpercaya dan tidak dapat digunakan dengan autentikasi terintegrasi"

Kemungkinan penyebabnya

Anda mengalami kesalahan ini saat mencoba masuk dengan akun Direktori Aktif setelah mengonfigurasi autentikasi Direktori Aktif.

Bimbingan

Pesan kesalahan umum ini mengharuskan Anda mengaktifkan pengelogan PAL untuk mengidentifikasi kesalahan tertentu.

Lihat daftar kesalahan umum berikut untuk mengidentifikasi kemungkinan penyebab setiap kesalahan, lalu ikuti panduan pemecahan masalah untuk menyelesaikan masalah tersebut.

Pesan-pesan Kesalahan
Pengguna atau grup Windows NT 'CONTOSO\user' tidak ditemukan
Tidak dapat mencari nama domain pendek karena kesalahan
Tidak dapat melakukan pencarian rDNS untuk host <nama> karena terjadi kesalahan
FQDN tidak dikembalikan oleh pencarian rDNS
Gagal mengikat ke server LDAP
Entri tabel kunci tidak ditemukan
Tidak ada entri tabel kunci yang ditemukan untuk <prinsipal>
Permintaan tiket server <prinsipal> tidak ditemukan di keytab (tiket kvno <KVNO>)
Permintaan tiket server < utama > kvno <KVNO> ditemukan di keytab tetapi tidak dengan jenis enkripsi <>
Permintaan tiket <server >principal< KVNO> jenis enkripsi <encryption type> ditemukan di keytab tetapi tidak dapat mendekripsi tiket

Pesan kesalahan: Pengguna atau grup Windows NT 'CONTOSO\user' tidak ditemukan

Kemungkinan penyebabnya

Anda mungkin mengalami kesalahan ini ketika mencoba membuat login Windows, atau selama penyegaran grup.

Bimbingan

Untuk memvalidasi masalah, ikuti panduan untuk "Login gagal. Login berasal dari domain yang tidak tepercaya dan tidak dapat digunakan dengan autentikasi Terintegrasi. (Microsoft SQL Server, Error: 18452)" dan aktifkan pencatatan PAL untuk mengidentifikasi kesalahan spesifik, serta memecahkan masalah sesuai kebutuhan.

Pesan kesalahan: "Tidak dapat mencari nama domain pendek karena kesalahan"

Kemungkinan penyebabnya

Sintaks Transact-SQL untuk membuat login Direktori Aktif adalah:

CREATE LOGIN [CONTOSO\user]
    FROM WINDOWS;

Nama NetBIOS (CONTOSO) diperlukan dalam perintah, tetapi FQDN domain (contoso.com) harus disediakan di backend saat melakukan koneksi LDAP. Untuk melakukan konversi ini, pencarian DNS dilakukan pada CONTOSO untuk menemukan IP dari pengendali domain, yang kemudian dapat dihubungkan untuk kueri LDAP.

Bimbingan

Pesan kesalahan "Tidak dapat mencari nama domain pendek karena kesalahan" menunjukkan bahwa nslookup for contoso tidak terselesaikan ke alamat IP pengendali domain. Tinjau pencarian DNS dan reverse DNS untuk memastikan bahwa nslookup baik NetBIOS maupun nama domain cocok.

Pesan kesalahan: "Tidak dapat melakukan pencarian rDNS untuk <nama> host karena kesalahan" atau "FQDN tidak dikembalikan oleh pencarian rDNS"

Kemungkinan penyebabnya

Pesan kesalahan ini biasanya menunjukkan bahwa catatan DNS terbalik (catatan PTR) tidak ada untuk semua domain controller.

Bimbingan

Periksa dns dan reverse DNS lookups. Setelah Anda mengidentifikasi domain controller yang tidak memiliki entri rDNS, Anda memiliki dua opsi:

  • Menambahkan entri rDNS untuk semua pengendali domain

    Pengaturan ini bukan pengaturan SQL Server, dan Anda harus mengonfigurasinya di tingkat domain. Anda mungkin harus bekerja sama dengan tim administrasi domain Anda untuk membuat catatan PTR yang diperlukan untuk semua pengendali domain yang nslookup mengembalikan nama domain tersebut.

  • Membatasi SQL Server ke subset pengendali domain

    Jika Anda tidak dapat menambahkan catatan PTR untuk semua domain controller yang dikembalikan, Anda dapat membatasi SQL Server hanya pada subset domain controller.

Pesan kesalahan: "Gagal mengikat ke server LDAP ldap://CONTOSO.COM:3268: Kesalahan Lokal"

Kemungkinan penyebabnya

Kesalahan umum dari OpenLDAP ini biasanya berarti salah satu dari dua hal:

  • Tidak ada kredensial
  • masalah rDNS

Berikut contoh pesan kesalahan:

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

Bimbingan

  • Tidak ada kredensial

    Pesan kesalahan lain muncul lebih dulu jika kredensial tidak dimuat untuk koneksi LDAP. Aktifkan pencatatan PAL dan periksa log kesalahan untuk pesan kesalahan sebelum yang ini. Jika tidak ada kesalahan lain, kemungkinan besar itu bukan masalah kredensial. Jika Anda menemukan kesalahan, perbaiki dulu sebelum melanjutkan. Dalam kebanyakan kasus, ini adalah salah satu pesan kesalahan yang dibahas dalam artikel ini.

  • masalah rDNS

    Periksa dns dan reverse DNS lookups.

    Ketika pustaka OpenLDAP terhubung ke domain controller, ia menyediakan nama domain lengkap (FQDN), yang dalam contoh ini adalah contoso.com, atau FQDNkdc1.contoso.com milik DC (). Setelah koneksi terjalin (namun sebelum berhasil dikembalikan ke penelepon), pustaka OpenLDAP memeriksa IP server tempat terhubung. Kemudian melakukan pencarian DNS terbalik dan memeriksa bahwa nama server yang dihubungkannya (kdc1.contoso.com) sesuai dengan domain yang diminta (contoso.com). Jika tidak cocok, pustaka OpenLDAP gagal melakukan koneksi sebagai tindakan keamanan. Ketidaksesuaian ini adalah bagian dari alasan mengapa pengaturan rDNS penting untuk SQL Server on Linux, dan menjadi fokus artikel ini.

Pesan kesalahan: "Entri tabel kunci tidak ditemukan"

Kemungkinan penyebabnya

Kesalahan ini menunjukkan masalah akses pada file keytab atau entri yang hilang di keytab.

Bimbingan

Pastikan file keytab memiliki tingkat akses dan izin yang benar. Lokasi dan nama default untuk file keytab adalah /var/opt/mssql/secrets/mssql.keytab. Untuk melihat izin saat ini pada semua file di bawah folder rahasia, jalankan perintah ini:

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

Gunakan perintah berikut untuk mengatur izin dan tingkat akses pada file keytab:

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

Untuk informasi selengkapnya tentang mencantumkan entri keytab dan mengatur izin yang benar, lihat bagian Periksa file dan izin keytab sebelumnya. Jika Anda tidak memenuhi salah satu kondisi dalam bagian tersebut, Anda akan melihat kesalahan ini atau kesalahan setara: "Key table entry not found".

Pesan kesalahan: "Tidak ada entri tabel kunci yang ditemukan untuk <prinsipal>"

Kemungkinan penyebabnya

Saat Anda mencoba mengambil kredensial dari <principal> tab kunci, Anda tidak menemukan entri yang relevan.

Bimbingan

Untuk mencantumkan semua entri dalam tab kunci, ikuti bagian Periksa file keytab dan izin di artikel ini. Pastikan ada <principal> . Dalam kasus ini, akun utama biasanya network.privilegedadaccount adalah tempat Anda mendaftarkan SPN. Jika tidak, tambahkan dengan perintah tersebut adutil . Untuk informasi selengkapnya, lihat Menggunakan adutil untuk mengonfigurasi autentikasi Direktori Aktif dengan SQL Server di Linux.

Pesan kesalahan: "Server permintaan tiket <prinsipal> tidak ditemukan di keytab (tiket kvno <KVNO>)"

Kemungkinan penyebabnya

Kesalahan ini menunjukkan bahwa SQL Server tidak dapat menemukan entri keytab untuk tiket yang diminta dengan Nomor Versi Kunci (KVNO) yang ditentukan.

Bimbingan

Untuk mencantumkan semua entri dalam tab kunci, ikuti bagian Periksa file keytab dan izin di artikel ini. Jika Anda tidak menemukan pesan kesalahan yang cocok dengan <principal> dan KVNO, perbarui file keytab untuk menambahkan entri ini, mengikuti langkah-langkah di bagian tersebut.

Anda juga dapat menjalankan perintah berikut untuk mendapatkan KVNO terbaru dari DC. Sebelum Anda menjalankan perintah ini, dapatkan atau perbarui Kerberos TGT dengan perintah tersebut kinit . Untuk informasi selengkapnya, lihat Menggunakan adutil untuk membuat pengguna Direktori Aktif untuk SQL Server dan mengatur Nama Perwakilan Layanan (SPN).

kvno MSSQLSvc/<hostname>

Pesan kesalahan: "Permintaan server tiket <prinsipal> kvno <KVNO> ditemukan di keytab tetapi tidak dengan tipe enkripsi <>"

Kemungkinan penyebabnya

Kesalahan ini berarti keytab SQL Server tidak berisi tipe enkripsi yang diminta klien.

Bimbingan

Untuk memvalidasi, ikuti bagian Check keytab file dan izin dalam artikel ini untuk mencantumkan semua entri di keytab. Jika Anda tidak menemukan pesan kesalahan yang sesuai dengan prinsipal, KVNO, dan tipe enkripsi, perbarui file keytab untuk menambahkan entri ini, mengikuti langkah-langkah di bagian tersebut.

Pesan kesalahan: "Permintaan tiket server< prinsipal> kvno <KVNO> enctype <jenis enkripsi> ditemukan di keytab tetapi tidak dapat mendekripsi tiket"

Kemungkinan penyebabnya

Pesan kesalahan ini menunjukkan bahwa SQL Server tidak dapat menggunakan kredensial dari file keytab untuk mendekripsi permintaan autentikasi yang masuk. Kata sandi yang salah sering kali menyebabkan kesalahan ini.

Bimbingan

Buat ulang tab tombol dengan kata sandi yang benar. Jika Anda menggunakan adutil, buat tab kunci dengan kata sandi yang tepat dan ikuti langkah-langkah di Tutorial: Gunakan adutil untuk mengonfigurasi autentikasi Direktori Aktif dengan SQL Server on Linux.

Port umum

Tabel ini menunjukkan port umum yang digunakan SQL Server on Linux untuk mengonfigurasi dan mengelola autentikasi Direktori Aktif.

Layanan Direktori Aktif Pelabuhan
DNS 53
LDAP 389
LDAPS 636
Kerberos 88