ID Artikel: 319723 - Kajian Terakhir: 24 September 2011 - Revisi: 2.0

Cara menggunakan otentikasi Kerberos dalam SQL Server

Tips SistemThis article applies to a different operating system than the one you are using. Article content that may not be relevant to you is disabled.

Pada Halaman ini

Perbesar semua | Perkecil semua

RINGKASAN

Anda dapat menggunakan otentikasi Kerberos dengan Microsoft SQL Server 2000. SQL Server 2000 mendukung fungsi ini sebagai bagian dari khas Microsoft Windows 2000 atau Microsoft Windows Server 2003 domain direktori aktif instalasi. Dengan Microsoft Windows 2000 Paket Layanan 3 (SP3) dan Windows Server 2003, Anda dapat mengaktifkan Otentikasi Kerberos pada server cluster.

Untuk informasi lebih lanjut tentang ini ditambahkan fungsi, klik nomor artikel di bawah ini untuk melihat artikel di Basis Pengetahuan Microsoft:
235529  (http://support.microsoft.com/kb/235529/ ) Kerberos dukungan pada Cluster server berbasis Windows 2000

Catatan Anda hanya dapat menggunakan fungsi ini jika Anda menjalankan Windows 2000 SP3 atau Windows Server 2003.

SQL Server 2000 Failover clustering juga menggunakan fungsi ini. Ketika jaringan nama sumber daya yang SQL Server bergantung pada adalah dalam sebuah cluster berbasis Windows 2000, Anda dapat menggunakan otentikasi Kerberos pada sumber daya setelah Anda meng-upgrade komputer untuk Windows 2000 SP3 atau Windows Server 2003. Untuk menginstal SQL Server Failover clustering, Anda harus memiliki Microsoft SQL Server 2000 Enterprise Edition atau pengembang edisi diinstal.

Catatan Konsep dan diskusi dalam artikel ini yang berlaku untuk SQL Server 2000 juga berlaku untuk SQL Server 2005. Untuk informasi lebih lanjut tentang subjek ini dalam SQL Server 2005, lihat topik berikut dalam SQL Server 2005 buku Online:
  • Cara: mengaktifkan otentikasi Kerberos termasuk SQL Server Virtual Server pada Server cluster
  • Pendaftaran nama layanan utama
Untuk informasi lebih lanjut tentang bagaimana untuk memastikan bahwa Anda menggunakan otentikasi Kerberos di SQL Server 2005, klik nomor artikel di bawah ini untuk melihat artikel di dalam Basis Pengetahuan Microsoft:
909801  (http://support.microsoft.com/kb/909801/ ) Bagaimana untuk memastikan bahwa Anda menggunakan otentikasi Kerberos saat membuat sambungan jauh untuk contoh SQL Server 2005

INFORMASI LEBIH LANJUT

SQL Server dapat menggunakan otentikasi Kerberos untuk server cluster. Anda dapat menggunakan otentikasi Kerberos dengan komputer yang berdiri sendiri yang menjalankan SQL Server, atau dengan contoh-contoh yang SQL Server yang berjalan pada Virtual server.

Menyambung ke server yang menjalankan Microsoft Layanan Informasi Internet dan membuat Kerberos koneksi ke SQL Server 2000

Bab ini menjelaskan cara untuk menyambung ke server yang menjalankan Microsoft Internet Information Services (IIS) untuk membuat sambungan Kerberos untuk sebuah server yang menjalankan SQL Server.

Catatan
Sebelum Anda melakukan prosedur setup, men-download Kerbtray dan utilitas SetSPN.

Untuk men-download utilitas Kerbtray, kunjungi Web site Microsoft berikut:
http://www.Microsoft.com/downloads/details.aspx?FamilyID = 4e3a58be-29f6-49f6-85be-e866af8e7a88 & displaylang = en (http://www.microsoft.com/downloads/details.aspx?FamilyID=4e3a58be-29f6-49f6-85be-e866af8e7a88&displaylang=en)
Dengan Kerbtray.exe, Anda dapat dengan mudah memverifikasi atau menghapus (atau keduanya) Kerberos tiket dari salah satu komputer terkait yang sedang digunakan.

Untuk men-download utilitas SetSPN, kunjungi Website Microsoft berikut situs:
http://www.Microsoft.com/downloads/details.aspx?FamilyID = 5fd831fd-ab77-46a3-9cfe-ff01d29e5c46 & displaylang = en (http://www.microsoft.com/downloads/details.aspx?FamilyID=5fd831fd-ab77-46a3-9cfe-ff01d29e5c46&displaylang=en)


Prosedur berikut menyediakan contoh setup urutan di mana Anda menggunakan otentikasi Kerberos melalui halaman IIS untuk mengakses server yang menjalankan SQL Server.

Langkah 1: Mengkonfigurasi domain controller

Pada kontroler domain, dalam direktori pengguna dan komputer Active:
  1. Klik kanan komputer yang Anda ingin mengatur untuk delegasi (IIS layanan server), dan kemudian klik untuk memilih Percaya ini komputer untuk delegasi. Jika komputer yang menjalankan SQL Server apa yang tampaknya menjadi komputer terakhir menghubungi tapi komputer telah terhubung server, juga harus diberikan izin delegasi. Jika tidak terakhir komputer dalam rantai, semua komputer yang perantara harus dipercaya untuk delegasi.
  2. Memberikan izin delegasi untuk layanan SQL Server account pengguna account domain. Anda harus memiliki account pengguna domain untuk berkumpul Instalasi SQL Server (langkah ini tidak diperlukan untuk komputer yang menjalankan SQL Server yang menggunakan account sistem lokal):
    1. Dalam Pengguna folder, klik kanan account pengguna, dan kemudian klik Properti.
    2. Di pengguna account kotak dialog properti, klik Rekening tab.
    3. Di bawah Opsi akun, klik untuk memilih The Rekening dipercaya untuk delegasi kotak centang. Pastikan yang Account sensitif dan tidak didelegasikan Periksa kotak dibersihkan untuk akun ini.

      Catatan 'Account terpercaya untuk delegasi' hak diperlukan untuk account layanan SQL Server hanya ketika Anda mendelegasikan mandat dari target SQL server untuk SQL server jauh seperti dalam skenario hop ganda seperti didistribusikan permintaan (query terkait server) yang menggunakan Windows otentikasi.
    Catatan Langkah ini hanya berlaku untuk Windows 2000 Server. Jika Anda menggunakan Windows Server 2003, kunjungi Web site Microsoft Developer Network (MSDN) berikut:
    http://technet2.Microsoft.com/windowsserver/en/Library/bef202b0-c8e9-4999-9af7-f56b991a4fd41033.mspx (http://technet2.microsoft.com/windowsserver/en/library/bef202b0-c8e9-4999-9af7-f56b991a4fd41033.mspx)
  3. Menggunakan utilitas Kerbtray.exe untuk memverifikasi bahwa Kerberos tiket diterima dari kontroler domain dan host:
    1. Klik kanan ikon Kerbtray dalam pemberitahuan daerah, dan kemudian klik membersihkan tiket.
    2. Menunggu untuk ikon Kerbtray hijau yang berubah dari hijau ke kuning. Segera setelah ini terjadi, Buka jendela prompt perintah dan jalankan ini perintah:
      bersih sesi * bumi
      Ini akan drop sesi yang ada, dan memaksa sesi baru untuk didirikan dan tiket Kerberos yang diterima.

Langkah 2: Mengkonfigurasi server layanan IIS

  1. Ganti default situs Web Wwwroot file dengan sampel berkas .asp. Untuk membuat berkas .asp sampel, menggunakan kode yang disediakan dalam bagian "ASP menguji script untuk pengambilan data SQL Server".
  2. Menambahkan file ke Wwwroot folder. Untuk melakukannya, gunakan contoh kode di bagian "ASP tes Script untuk SQL Server pengambilan Data". Simpan sebagai file Default.asp.
  3. Mengkonfigurasi server Web untuk menggunakan Windows terpadu Otentikasi hanya:
    1. Klik kanan default Web server, dan kemudian klik Keamanan folder.
    2. Dalam folder keamanan, membuat perubahan yang benar, dan kemudian klik untuk mengosongkan akses anonim.
    3. Dari prompt perintah, jalankan perintah ini:
      Cscript C:\Inetpub\Adminscripts\adsutil.vbs mendapatkan w3svc/NTAuthenticationProviders
      Jika Bernegosiasi adalah diaktifkan, berikut adalah kembali:
       NTAuthenticationProviders : (STRING) Negotiate,NTLM
      Untuk informasi selengkapnya, klik nomor artikel berikut untuk melihat artikel di Pangkalan Pengetahuan Microsoft:
      215383  (http://support.microsoft.com/kb/215383/ ) Cara mengkonfigurasi IIS untuk mendukung protokol Kerberos dan NTLM protokol jaringan otentikasi
    Catatan
    • Anda harus menginstal Microsoft Data Access (MDAC) 2.6, atau nanti, di IIS layanan server. Untuk melakukannya (dan untuk membuat alat-alat yang tersedia untuk pengujian), menginstal alat klien SQL Server 2000 server Web. Pada menginstal hanya MDAC 2.6, atau kemudian (tanpa menginstal alat klien), kunjungi Web site Microsoft berikut:
      http://msdn2.Microsoft.com/en-US/data/aa937730.aspx (http://msdn2.microsoft.com/en-us/data/aa937730.aspx)
    • IIS adalah sistem tingkat menengah umum. Namun, IIS ini tidak hanya tengah tingkat sistem. Jika IIS tidak sistem tingkat menengah di lingkungan Anda, ikuti langkah-langkah yang tepat untuk sistem tingkat menengah.
  4. Memverifikasi bahwa
    HKLM\SW\MS\MSSQLSERVER\Client\DSQUERY
    nilai hadir dalam registri. Jika nilai tidak ditampilkan, menambahkannya sebagai
    DSQUERY:Reg_SZ:DBNETLIB
    .
  5. Menggunakan utilitas Kerbtray.exe untuk memverifikasi bahwa Kerberos tiket diterima dari kontroler domain dan host:
    1. Klik kanan ikon Kerbtray di daerah pemberitahuan, kemudian klik membersihkan tiket.
    2. Menunggu untuk ikon Kerbtray hijau yang berubah dari hijau ke kuning. Segera setelah ini terjadi, Buka jendela prompt perintah dan jalankan ini perintah:
      bersih sesi * bumi
      Ini akan drop sesi yang ada, dan memaksa sesi baru untuk didirikan dan tiket Kerberos yang diterima.

Langkah 3: Mengkonfigurasi SQL Server layanan untuk membuat SPNs secara dinamis

Untuk melakukan ini, Anda harus memberikan pengaturan kontrol akses berikut untuk SQL Server layanan account di layanan direktori Active Directory:
  • Baca servicePrincipalName
  • Menulis servicePrincipalName
Peringatan
  • Jika Anda menggunakan snap-in Edit antarmuka layanan direktori aktif (ADSI), utilitas LDP, atau klien LDAP 3 dan Anda keliru mengubah atribut objek Active Directory, masalah serius terjadi. Untuk mengatasi masalah ini, Anda mungkin harus menginstal ulang Microsoft Exchange 2000 Server atau Microsoft Exchange Server 2003. Dalam beberapa kasus, Anda mungkin harus menginstal ulang Microsoft Windows 2000 Server atau Microsoft Windows Server 2003 dan kemudian instal ulang Exchange 2000 Server atau Exchange Server 2003. Kami tidak dapat menjamin bahwa masalah ini dapat diselesaikan. Memodifikasi atribut ini risiko Anda sendiri.
  • Anda harus logon sebagai domain administrator. Atau, Anda harus meminta administrator domain Anda untuk memberikan izin yang sesuai dan hak-hak pengguna yang sesuai ke SQL Server startup account.
Untuk mengkonfigurasi SQL Server layanan untuk membuat SPNs secara dinamis ketika SQL Server layanan dimulai, ikuti langkah berikut:
  1. Klik Mulai, klik Menjalankan, jenis Adsiedit.MSC, lalu klik Oke.

    Catatan Alat ADSIEdit termasuk dalam alat dukungan Windows. Untuk mendapatkan alat dukungan Windows, kunjungi Website Microsoft berikut:
    http://www.Microsoft.com/downloads/details.aspx?FamilyID=6EC50B78-8BE1-4E81-B3BE-4E7AC4F0912D&DisplayLang=en (http://www.microsoft.com/downloads/details.aspx?familyid=6EC50B78-8BE1-4E81-B3BE-4E7AC4F0912D&displaylang=en)
  2. Dalam ADSI Edit snap-in, memperluas Domain [DomainName], memperluas DC = RootDomainName, memperluas CN = pengguna, klik kanan CN = AccountName , lalu klik Properti.

    Catatan
    • DomainName adalah sebuah tempat untuk nama domain.
    • RootDomainName adalah sebuah tempat untuk nama domain akar.
    • AccountName merupakan tempat bagi account yang Anda tetapkan untuk memulai layanan SQL Server.
    • Jika Anda menetapkan account sistem lokal untuk memulai layanan SQL Server, AccountName merupakan tempat bagi account yang Anda gunakan untuk masuk ke Microsoft Windows.
    • Jika Anda menetapkan account pengguna domain untuk memulai layanan SQL Server, AccountName merupakan tempat bagi account pengguna domain.
  3. Dalam CN = AccountName Properti kotak dialog, klik Keamanan tab.
  4. Pada Keamanan tab, klik Lanjutan.
  5. Dalam Pengaturan keamanan lanjutan kotak dialog, pastikan DIRI terdaftar di bawah Entri izin.

    Jika DIRI adalah tidak tercantum, klik Tambahkan, dan kemudian tambahkan DIRI.
  6. Di bawah Entri izin, klik DIRI, lalu klik Mengedit.
  7. Dalam Izin masuk kotak dialog, klik Properti tab.
  8. Pada Properti tab, klik Objek ini hanya dalam Menerapkan ke Daftar, dan kemudian klik untuk memilih kotak centang untuk izin berikut di bawah Izin:
    • Baca servicePrincipalName
    • Menulis servicePrincipalName
  9. Klik Oke dua kali.

    Catatan Untuk bantuan dengan proses ini, hubungi dukungan produk Active Directory, dan menyebutkan artikel Basis Pengetahuan Microsoft.

    Catatan Menggunakan alat dsacls untuk menentukan jika diri account memiliki izin menulis ServicePrincipalName, menggunakan dsacls perintah. Berikut ini adalah sintaks:
    dsacls <distinguished_Name_of_service_account>
    Jika diri account memiliki izin menulis ServicePrincipalName, Anda melihat output berikut:
    Allow NT Authority\SELF SPECIAL ACCESS for Validated Write to Service principal name
    WRITE PROPERTY
    Alat dsacls adalah bagian dari alat dukungan.
  10. Dalam CN = AccountName Properti kotak dialog, klik Editor atribut.
  11. Di bawah Atribut, klik servicePrincipalName dalam Atribut kolom, dan kemudian klik Mengedit.
  12. Dalam Object multi-nilai String Editor kotak dialog, menghapus nama prinsip layanan (SPNs) untuk contoh-contoh SQL Server yang menggunakan account layanan SQL Server ini.

    Warning Anda hanya harus menghapus SPNs untuk contoh-contoh SQL Server yang Anda sedang bekerja pada. Hal lain dari SQL Server yang menggunakan account layanan ini akan dapat menghapus SPNs yang terkait dengan kasus ini waktu berikutnya Anda mulai kasus ini.
  13. Keluar ADSI Edit snap-in.
Setelah Anda mengikuti langkah-langkah ini, isu-isu SPN juga dihilangkan jika Anda mengubah TCP/IP port atau nama domain untuk instalasi baru SQL Server 2005 atau ada kasus SQL Server 2005.

Langkah 4: Mengkonfigurasi komputer klien

  1. Untuk setiap klien yang akan menghubungkan, memverifikasi bahwa Microsoft Internet Explorer telah dikonfigurasi untuk menggunakan Windows otentikasi:
    1. Di Internet Explorer, di Alatmenu, klik Opsi Internet.
    2. Klik Lanjutan tab.
    3. Di bawah Keamanan, klik untuk memilih Mengaktifkan Windows otentikasi Terpadu (memerlukan restart), kemudian klik Oke.

Langkah 5: Menguji konfigurasi

Untuk setiap komputer yang terlibat:
  1. Logon ke komputer, dan kemudian menggunakan Kerbtray.exe untuk memverifikasi komputer dapat memperoleh tiket Kerberos berlaku dari domain controller.
  2. Gunakan Kerbtray.exe untuk menghapus semua tiket pada komputer.
  3. Membuat dan menghubungkan ke halaman Web yang mengembalikan SQL Server data.

    Catatan Ganti SQLSERVERNAME dengan nama komputer yang menjalankan SQL Server:
    • Jika data dikembalikan, Halaman ini menampilkan Jenis otentikasi Bernegosiasi, dan SQL Server data untuk hasil sp_helpdb disimpan prosedur yang harus mengembalikan sebuah daftar database pada server yang sedang terhubung ke melalui.Halaman ASP.
    • Jika Anda memiliki audit diaktifkan pada SQL Server, dalam Log aplikasi Anda akan melihat bahwa sambungan "dipercaya".

ASP menguji script untuk pengambilan data SQL Server

Di sini adalah tes ASP script untuk SQL Server data. Jika Anda menggunakan ini kode contoh, pastikan bahwa Anda mengganti SQLSERVERNAME dengan nama komputer yang menjalankan SQL Server.
<%@ Language=VBScript %>
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
</HEAD>
<BODY>
<%="'auth_user' is" & request.servervariables("auth_user")%>
<P>
<%="'auth_type' is" & request.servervariables("auth_type")%>
<P>
Connections string is <B>" Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=pubs;Data Source=SQLSERVERNAME </B>
<P>
<%
	set rs = Server.CreateObject("ADODB.Recordset")
	set cn = Server.CreateObject("ADODB.Connection")
	cn.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=pubs;Data Source=SQLSERVERNAME"
	rs.open "MASTER..sp_helpdb",cn
	Response.Write cstr(rs.Fields.Count) +"<BR>"
	while not rs.EOF
		Response.Write cstr(rs(0))+"<BR>"
		rs.MoveNext
	wend
	rs.Close
	cn.Close
	set rs = nothing ' Frees memory reserved by the recordset.
	set cn = nothing ' Frees memory reserved by the connection.
%>
</BODY>
</HTML>
					

Bagaimana untuk mengumpulkan daftar prinsip server Active Directory nama informasi

Untuk mengumpulkan daftar nama utama Active Directory server (SPN) informasi, ketik perintah berikut pada salah satu kontroler domain Anda, di mana betaland adalah nama domain NetBIOS dan NewoutputUsers.txt nama output file yang akan Anda gunakan untuk hasil. Jika Anda tidak menggunakan path lengkap, file ditempatkan dalam folder saat ini di mana Anda menjalankan baris perintah. Sampel ini perintah kueri seluruh domain:
ldifde -d "CN = Users, DC =betaland"-l servicePrincipalName -F NewoutputUsers.txt
Sintaks ini menciptakan sebuah file bernama NewoutputUsers.txt yang berisi informasi yang sama dengan output dalam "Domain tingkat output dari NewouputUsers.txt"bagian dalam artikel ini.

Output ini dapat menjadi sangat besar ketika Anda berkumpul untuk seluruh domain. Oleh karena itu, untuk batas mengumpulkan informasi untuk nama pengguna, gunakan sintaks berikut, di mana Nama pengguna nama pengguna dan betaland adalah domain yang Anda query:
ldifde -d "CN =Nama penggunaDC =betaland"-l servicePrincipalName -F NewoutputUsers.txt
Mengumpulkan informasi untuk pengguna tertentu sangat mengurangi data yang Anda harus mencari melalui. Jika Anda mengumpulkan informasi untuk seluruh domain, mencari nama pengguna dari server bersangkutan. Dalam Contoh output, Anda melihat:
  • Entri untuk server yang tidak lagi ada, tetapi yang tidak benar-benar dihapus dari Active Directory.
  • Pengguna"Nama pengguna"telah berlaku SPN informasi tentang sepuluh server yang berbeda.
Selain itu, Anda dapat menggunakan layanan direktori aktif Antarmuka (ADSI) alat untuk memperbaiki Active Directory entri yang tidak valid.

Warning Jika Anda menggunakan ADSI Edit snap-in, utilitas LDP, atau lainnya Versi 3 klien LDAP, dan Anda keliru mengubah atribut aktif Direktori objek, Anda dapat menyebabkan masalah serius. Masalah ini mungkin memerlukan Anda menginstal Microsoft Windows 2000 Server, Microsoft Windows Server 2003, Microsoft Exchange 2000 Server, Microsoft Exchange Server 2003 atau Windows kedua dan pertukaran. Microsoft tidak dapat menjamin bahwa masalah yang terjadi jika Anda salah memodifikasi Active Directory atribut objek dapat dipecahkan. Memodifikasi atribut ini risiko Anda sendiri.

Domain tingkat output dari NewouputUsers.txt

	dn: CN=User Name,CN=Users,DC=betaland
	changetype: add
	servicePrincipalName: MSSQLSvc/CLUSTERDEFAULT.betaland:1257
	servicePrincipalName: MSSQLSvc/INST3.betaland:3616
	servicePrincipalName: MSSQLSvc/INST2.betaland:3490
	servicePrincipalName: MSSQLSvc/SQLMAN.betaland:1433
	servicePrincipalName: MSSQLSvc/VSS1.betaland:1433
	servicePrincipalName: MSSQLSvc/INST1.betaland:2536
	servicePrincipalName: MSSQLSvc/INST4.betaland:3967
	servicePrincipalName: MSSQLSvc/SQLVIRTUAL1.betaland:1434
	servicePrincipalName: MSSQLSvc/SQLVIRTUAL.betaland:1433
	servicePrincipalName: MSSQLSvc/SQLBUSTER.betaland:1315

REFERENSI

Untuk informasi lebih lanjut tentang keamanan account delegasi, lihat topik "Keamanan Account delegasi" dalam SQL Server buku Online.

Untuk informasi lebih lanjut, klik nomor artikel berikut untuk melihat artikel di dalam Basis Pengetahuan Microsoft:
262177  (http://support.microsoft.com/kb/262177/ ) Bagaimana mengaktifkan logging acara Kerberos
321708  (http://support.microsoft.com/kb/321708/ ) Cara menggunakan Alat Diagnostik Jaringan (Netdiag.exe) di Windows 2000
326985  (http://support.microsoft.com/kb/326985/ ) Cara memecahkan masalah yang berkaitan dengan Kerberos di IIS
244474  (http://support.microsoft.com/kb/244474/ ) Cara memaksa Kerberos untuk menggunakan TCP bukan UDP pada Windows Server 2003, Windows XP, dan Windows 2000

Berlaku bagi:
  • Microsoft SQL Server 2000 Standard Edition, ketika digunakan dengan:
    • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
    • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Workgroup Edition
Kata kunci: 
kbinfo kbmt KB319723 KbMtid
Penerjemahan MesinPenerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:319723  (http://support.microsoft.com/kb/319723/en-us/ )