Server Tertaut (Mesin Database)

Berlaku untuk:SQL ServerAzure SQL Managed Instance

Server tertaut memungkinkan Mesin Database SQL Server dan Azure SQL Managed Instance untuk membaca data dari sumber data jarak jauh dan menjalankan perintah terhadap server database jarak jauh (misalnya, sumber data OLE DB) di luar instans SQL Server. Server yang biasanya ditautkan dikonfigurasi untuk memungkinkan Mesin Database menjalankan pernyataan Transact-SQL yang menyertakan tabel dalam instans lain SQL Server, atau produk database lain seperti Oracle. Banyak jenis sumber data OLE DB dapat dikonfigurasi sebagai server tertaut, termasuk penyedia database pihak ketiga dan Azure Cosmos DB.

Catatan

Server tertaut tersedia di SQL Server Database Engine dan Azure SQL Managed Instance. Mereka tidak diaktifkan di singleton Azure SQL Database dan kumpulan elastis. Ada beberapa batasan dalam SQL Managed Instance yang dapat ditemukan di sini.

Kapan menggunakan server tertaut?

Server tertaut memungkinkan Anda menerapkan database terdistribusi yang dapat mengambil dan memperbarui data di database lain. Mereka adalah solusi yang baik dalam skenario di mana Anda perlu menerapkan sharding database tanpa perlu membuat kode aplikasi kustom atau langsung memuat dari sumber data jarak jauh. Server tertaut menawarkan keuntungan berikut:

  • Kemampuan untuk mengakses data dari luar SQL Server.

  • Kemampuan untuk mengeluarkan kueri terdistribusi, pembaruan, perintah, dan transaksi pada sumber data heterogen di seluruh perusahaan.

  • Kemampuan untuk mengatasi sumber data yang beragam demikian pula.

Anda dapat mengonfigurasi server tertaut dengan menggunakan SQL Server Management Studio atau dengan menggunakan pernyataan sp_addlinkedserver (Transact-SQL ). Penyedia OLE DB sangat bervariasi dalam jenis dan jumlah parameter yang diperlukan. Misalnya, beberapa penyedia mengharuskan Anda untuk memberikan konteks keamanan untuk koneksi menggunakan sp_addlinkedsrvlogin (Transact-SQL). Beberapa penyedia OLE DB memungkinkan SQL Server memperbarui data pada sumber OLE DB. Yang lain hanya menyediakan akses data baca-saja. Untuk informasi tentang setiap penyedia OLE DB, lihat dokumentasi untuk penyedia OLE DB tersebut.

Komponen server tertaut

Definisi server tertaut menentukan objek berikut:

  • Penyedia OLE DB

  • Sumber data OLE DB

Penyedia OLE DB adalah DLL yang mengelola dan berinteraksi dengan sumber data tertentu. Sumber data OLE DB mengidentifikasi database tertentu yang dapat diakses melalui OLE DB. Meskipun sumber data yang dikueri melalui definisi server tertaut biasanya merupakan database, penyedia OLE DB ada untuk berbagai file dan format file. Ini termasuk file teks, data spreadsheet, dan hasil pencarian konten teks lengkap.

Dimulai dengan SQL Server 2019 (15.x), Driver Microsoft OLE DB untuk SQL Server (MSOLEDBSQL) (PROGID: MSOLEDBSQL) adalah penyedia OLE DB default. Dalam versi sebelumnya, penyedia SQL Server Native Client OLE DB (SQLNCLI) (PROGID: SQLNCLI11) adalah penyedia OLE DB default.

Penting

SQL Server Native Client (sering disingkat SNAC) telah dihapus dari SQL Server 2022 (16.x) dan SQL Server Management Studio 19 (SSMS). Penyedia SQL Server Native Client OLE DB (SQLNCLI atau SQLNCLI11) dan Penyedia Microsoft OLE DB warisan untuk SQL Server (SQLOLEDB) tidak direkomendasikan untuk pengembangan baru. Beralih ke Microsoft OLE DB Driver (MSOLEDBSQL) baru untuk SQL Server ke depannya.

Server tertaut ke sumber Microsoft Access dan Excel hanya didukung oleh Microsoft saat menggunakan penyedia Microsoft.JET.OLEDB.4.0 OLE DB 32-bit.

Catatan

Kueri terdistribusi SQL Server dirancang untuk bekerja dengan penyedia OLE DB apa pun yang mengimplementasikan antarmuka OLE DB yang diperlukan. Namun, SQL Server telah diuji terhadap penyedia OLE DB default.

Detail server tertaut

Ilustrasi berikut menunjukkan dasar-dasar konfigurasi server tertaut.

Diagram showing client tier, server tier, and database server tier

Biasanya, server tertaut digunakan untuk menangani kueri terdistribusi. Saat aplikasi klien menjalankan kueri terdistribusi melalui server tertaut, SQL Server mengurai perintah dan mengirim permintaan ke OLE DB. Permintaan set baris mungkin dalam bentuk menjalankan kueri terhadap penyedia atau membuka tabel dasar dari penyedia.

Catatan

Agar sumber data mengembalikan data melalui server tertaut, penyedia OLE DB (DLL) untuk sumber data tersebut harus ada di server yang sama dengan instans SQL Server.

Penting

Ketika penyedia OLE DB digunakan, akun tempat layanan SQL Server berjalan harus memiliki izin baca dan jalankan untuk direktori, dan semua subdirektori, tempat penyedia diinstal. Ini termasuk penyedia yang dirilis Microsoft, dan penyedia pihak ketiga mana pun.

Catatan

Server tertaut mendukung autentikasi pass-through Direktori Aktif saat menggunakan delegasi penuh. Dimulai dengan SQL Server 2017 (14.x) CU17, autentikasi pass-through dengan delegasi yang dibatasi juga didukung; namun, delegasi yang dibatasi berbasis sumber daya tidak didukung.

Mengelola penyedia

Ada serangkaian opsi yang mengontrol cara SQL Server memuat dan menggunakan penyedia OLE DB yang ditentukan dalam registri.

Mengelola definisi server tertaut

Saat Anda menyiapkan server tertaut, daftarkan informasi koneksi dan informasi sumber data dengan SQL Server. Setelah didaftarkan, sumber data tersebut dapat dirujuk dengan satu nama logis.

Anda dapat menggunakan prosedur tersimpan dan tampilan katalog untuk mengelola definisi server tertaut:

  • Buat definisi server tertaut dengan menjalankan sp_addlinkedserver.

  • Lihat informasi tentang server tertaut yang ditentukan dalam instans SQL Server tertentu dengan menjalankan kueri terhadap sys.servers tampilan katalog sistem.

  • Hapus definisi server tertaut dengan menjalankan sp_dropserver. Anda juga dapat menggunakan prosedur tersimpan ini untuk menghapus server jarak jauh.

Anda juga dapat menentukan server tertaut dengan menggunakan SQL Server Management Studio. Di Object Explorer, klik kanan Objek Server, pilih Baru, dan pilih Server Tertaut. Anda dapat menghapus definisi server tertaut dengan mengklik kanan nama server tertaut dan memilih Hapus.

Saat Anda menjalankan kueri terdistribusi terhadap server tertaut, sertakan nama tabel empat bagian yang sepenuhnya memenuhi syarat untuk setiap sumber data yang akan dikueri. Nama empat bagian ini harus dalam bentuk linked_server_name.catalog.skema.object_name.

Catatan

Server tertaut dapat didefinisikan untuk mengarahkan kembali (loop back) ke server tempat server ditentukan. Server loopback paling berguna saat menguji aplikasi yang menggunakan kueri terdistribusi pada satu jaringan server. Server tertaut loopback ditujukan untuk pengujian dan tidak didukung untuk banyak operasi, seperti transaksi terdistribusi.

Autentikasi server tertaut Azure SQL Managed Instance

Server tertaut Azure SQL Managed Instance mendukung autentikasi dan autentikasi SQL dengan ID Microsoft Entra (sebelumnya Azure Active Directory). Dua mode autentikasi Microsoft Entra yang didukung adalah: identitas terkelola dan pass-through. Autentikasi identitas terkelola dapat digunakan untuk mengizinkan masuk lokal untuk mengkueri server tertaut jarak jauh. Autentikasi pass-through memungkinkan perwakilan yang dapat mengautentikasi dengan instans lokal untuk mengakses instans jarak jauh melalui server tertaut. Prasyarat untuk autentikasi pass-through adalah bahwa prinsipal yang sama ditambahkan sebagai login di server jarak jauh dan kedua instans tersebut adalah anggota grup kepercayaan SQL.

Catatan

Definisi server tertaut yang ada yang dikonfigurasi untuk mode pass-through akan mendukung autentikasi Microsoft Entra. Satu-satunya persyaratan untuk ini adalah menambahkan SQL Managed Instance ke Grup Kepercayaan Server.

Batasan autentikasi Microsoft Entra

  • Autentikasi Microsoft Entra tidak didukung untuk instans terkelola SQL di penyewa Microsoft Entra yang berbeda.
  • Autentikasi Microsoft Entra untuk server tertaut hanya didukung dengan driver OLE DB versi 18.2.1 dan yang lebih tinggi.
  • Autentikasi Microsoft Entra untuk server tertaut dari SQL Managed Instance ke SQL Server hanya didukung untuk login lokal yang dipetakan. Menyebarkan konteks keamanan tidak didukung. Itu berarti bahwa autentikasi identitas terkelola didukung, sementara autentikasi pass-through tidak didukung.

server MSOLEDBSQL19 dan tertaut

Saat ini, MSOLEDBSQL19 mencegah pembuatan server tertaut tanpa enkripsi dan sertifikat tepercaya (sertifikat yang ditandatangani sendiri tidak cukup). Jika server tertaut diperlukan, gunakan versi MSOLEDBSQL yang didukung yang ada.

Baca juga

Langkah berikutnya