Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Topik ini menunjukkan cara membuat server tertaut dan mengakses data dari SQL Server lain dengan menggunakan SQL Server Management Studio atau Transact-SQL. Dengan membuat server yang tertaut, Anda dapat bekerja dengan data dari berbagai sumber. Server yang ditautkan tidak harus menjadi instans lain dari SQL Server, tetapi itu adalah skenario umum.
Latar Belakang
Server yang tertaut memungkinkan akses ke kueri terdistribusi dan heterogen terhadap sumber data OLE DB. Setelah server tertaut dibuat, kueri terdistribusi dapat dijalankan terhadap server ini, dan kueri dapat menggabungkan tabel dari lebih dari satu sumber data. Jika server tertaut didefinisikan sebagai instans SQL Server, prosedur tersimpan jarak jauh dapat dijalankan.
Kemampuan dan argumen yang diperlukan dari server tertaut dapat bervariasi secara signifikan. Contoh dalam topik ini memberikan contoh umum tetapi semua opsi tidak dijelaskan. Untuk informasi selengkapnya, lihat sp_addlinkedserver (Transact-SQL).
Keamanan
Hak akses
Saat menggunakan pernyataan Transact-SQL, Anda memerlukan izin ALTER ANY LINKED SERVER di server atau harus menjadi anggota dalam peran server tetap setupadmin. Ketika menggunakan Management Studio, diperlukan CONTROL SERVER izin atau menjadi anggota dalam peran server tetap sysadmin.
Cara Membuat Server Tertaut
Anda dapat menggunakan salah satu hal berikut:
Menggunakan SQL Server Management Studio
Untuk membuat server tertaut ke instans SQL Server lain menggunakan SQL Server Management Studio
Di SQL Server Management Studio, buka Object Explorer, perluas Objek Server, klik kanan Server Tertaut, lalu klik Server Tertaut Baru.
Pada halaman Umum , dalam kotak Server tertaut , ketik nama instans SQL Server yang Anda tautkan.
SQL Server
Identifikasi server yang ditautkan sebagai instans MicrosoftSQL Server. Jika Anda menggunakan metode ini untuk menentukan server tertaut SQL Server, nama yang ditentukan dalam Server tertaut harus merupakan nama jaringan server. Selain itu, setiap tabel yang diambil dari server berasal dari database default yang ditentukan untuk masuk di server yang ditautkan.Sumber data lainnya
Tentukan jenis server OLE DB selain SQL Server. Mengklik opsi ini akan mengaktifkan opsi di bawahnya.Penyedia
Pilih sumber data OLE DB dari kotak daftar. Penyedia OLE DB terdaftar dengan PROGID yang diberikan dalam registri.Nama produk
Ketik nama produk sumber data OLE DB untuk ditambahkan sebagai server tertaut.sumber data
Ketik nama sumber data seperti yang ditafsirkan oleh penyedia OLE DB. Jika Anda menyambungkan ke instans SQL Server, berikan nama instans.String penyedia
Ketik pengidentifikasi terprogram unik (PROGID) penyedia OLE DB yang sesuai dengan sumber data. Untuk contoh string penyedia yang valid, lihat sp_addlinkedserver (Transact-SQL).Tempat
Ketik lokasi database seperti yang ditafsirkan oleh penyedia OLE DB.Katalog
Ketik nama katalog yang akan digunakan saat membuat koneksi ke penyedia OLE DB.Untuk menguji kemampuan untuk menyambungkan ke server tertaut, di Object Explorer, klik kanan server tertaut lalu klik Uji Koneksi.
Nota
Jika instans SQL Server adalah instans default, masukkan nama komputer yang menghosting instans SQL Server. Jika SQL Server adalah instans bernama, masukkan nama komputer dan nama instans, seperti Accounting\SQLExpress.
Di area Jenis server, pilih SQL Server untuk menunjukkan bahwa server yang ditautkan adalah instans lain dari SQL Server.
Pada halaman Keamanan , tentukan konteks keamanan yang akan digunakan saat SQL Server asli tersambung ke server tertaut. Di lingkungan domain tempat pengguna terhubung dengan menggunakan login domain mereka, memilih Dibuat dengan menggunakan konteks keamanan login saat ini adalah pilihan terbaik. Ketika pengguna terhubung ke SQL Server asli dengan menggunakan login SQL Server, pilihan terbaik sering kali adalah memilih Dengan menggunakan konteks keamanan ini, lalu memberikan kredensial yang diperlukan untuk mengautentikasi di server tertaut.
Masuk lokal
Tentukan login lokal yang dapat tersambung ke server tertaut. Login lokal dapat berupa login menggunakan Autentikasi SQL Server atau login Autentikasi Windows. Gunakan daftar ini untuk membatasi koneksi ke login tertentu, atau untuk mengizinkan beberapa login terhubung sebagai login yang berbeda.menyamar sebagai
Teruskan nama pengguna dan kata sandi dari login lokal ke server tertaut. Untuk Autentikasi SQL Server, login dengan nama dan kata sandi yang sama persis harus ada di server jarak jauh. Untuk login Windows, login harus berupa login yang valid di server tertaut.Untuk menggunakan penggandaan identitas, konfigurasi harus memenuhi persyaratan untuk delegasi.
Pengguna Jarak Jauh
Gunakan pengguna jarak jauh untuk memetakan pengguna yang tidak ditentukan dalam Login lokal. Pengguna Jarak Jauh harus merupakan login Autentikasi SQL Server di server jarak jauh.Kata Sandi Jarak Jauh
Tentukan kata sandi Pengguna Jarak Jauh.Tambahkan
Tambahkan login lokal baru.Hapus
Hapus login lokal yang sudah ada.Tidak dibuat
Tentukan bahwa koneksi tidak akan dibuat untuk login yang tidak ditentukan dalam daftar.Dibuat tanpa menggunakan konteks keamanan
Tentukan bahwa koneksi akan dilakukan tanpa menggunakan konteks keamanan untuk login yang tidak tercantum dalam daftar.Dibuat menggunakan konteks keamanan login saat ini
Tentukan bahwa koneksi akan dibuat menggunakan konteks keamanan login saat ini untuk login yang tidak tercantum dalam daftar. Jika tersambung ke server lokal menggunakan Autentikasi Windows, kredensial windows Anda akan digunakan untuk menyambungkan ke server jarak jauh. Jika tersambung ke server lokal menggunakan Autentikasi SQL Server, nama login dan kata sandi akan digunakan untuk menyambungkan ke server jarak jauh. Dalam hal ini login dengan nama dan kata sandi yang sama persis harus ada di server jarak jauh.Dibuat menggunakan konteks keamanan ini
Tentukan bahwa koneksi akan dibuat menggunakan login dan kata sandi yang ditentukan dalam kotak Masuk jarak jauh dan Dengan kata sandi untuk masuk yang tidak ditentukan dalam daftar. Login jarak jauh harus berupa login Autentikasi SQL Server di server jarak jauh.Secara opsional, untuk melihat atau menentukan opsi server, klik halaman Opsi Server .
Kompatibel Kolaborasi
Mempengaruhi eksekusi Kueri Terdistribusi pada server yang terhubung. Jika opsi ini diatur ke true, SQL Server mengasumsikan bahwa semua karakter di server tertaut kompatibel dengan server lokal, sehubungan dengan kumpulan karakter dan urutan kolase (atau urutan pengurutan). Ini memungkinkan SQL Server untuk mengirim perbandingan pada kolom karakter ke penyedia. Jika opsi ini tidak diatur, SQL Server selalu mengevaluasi perbandingan pada kolom karakter secara lokal.Opsi ini harus diatur hanya jika yakin bahwa sumber data yang sesuai dengan server tertaut memiliki kumpulan karakter yang sama dan urutan pengurutan sebagai server lokal.
Akses Data
Mengaktifkan dan menonaktifkan server tertaut untuk akses kueri terdistribusi.RPC
Mengaktifkan RPC dari server yang ditentukan.RPC Out
Mengaktifkan RPC ke server yang ditentukan.Gunakan Kolasi Jarak Jauh
Menentukan apakah kolase kolom jarak jauh atau server lokal akan digunakan.Jika true, kolase kolom jarak jauh digunakan untuk sumber data SQL Server, dan kolase yang ditentukan dalam nama kolase digunakan untuk sumber data non-SQL Server.
Jika bernilai false, kueri terdistribusi akan selalu menggunakan pengurutan default server lokal, sementara nama pengurutan dan pengurutan kolom di server jarak jauh diabaikan. Defaultnya adalah false.
Nama Kolajek
Menentukan nama pengurutan yang digunakan oleh sumber data jarak jauh jika pengurutan jarak jauh digunakan dan sumber data bukan sumber data SQL Server. Nama harus merupakan salah satu kolasi yang didukung oleh SQL Server.Gunakan opsi ini saat mengakses sumber data OLE DB selain SQL Server, tetapi kolasenya cocok dengan salah satu kolase SQL Server.
Server terkait harus mendukung satu pengurutan yang akan digunakan untuk semua kolom di server tersebut. Jangan atur opsi ini jika server tertaut mendukung beberapa kolase dalam satu sumber data, atau jika kolase server tertaut tidak dapat ditentukan untuk mencocokkan salah satu kolase SQL Server.
Batas Waktu Koneksi
Nilai batas waktu dalam detik untuk menghubungkan ke server tertaut.Jika 0, gunakan nilai opsi bataswaktu masuk jarak jauh default sp_configure.
Batas Waktu Kueri
Nilai batas waktu dalam detik untuk kueri terhadap server tertaut.Jika 0, gunakan nilai opsi batas waktu kueri jarak jauh default sp_configure.
Aktifkan Promosi Transaksi Terdistribusi
Gunakan opsi ini untuk melindungi tindakan prosedur server-ke-server melalui transaksi Koordinator Transaksi Terdistribusi Microsoft (MS DTC). Ketika opsi ini TRUE, memanggil prosedur tersimpan jarak jauh memulai transaksi terdistribusi dan mendaftarkan transaksi dengan MS DTC. Untuk informasi selengkapnya, lihat sp_serveroption (Transact-SQL).Klik OK.
Untuk melihat opsi penyedia
Untuk melihat opsi yang disediakan penyedia, klik halaman Opsi Penyedia .
Semua penyedia tidak memiliki opsi yang sama yang tersedia. Misalnya, beberapa jenis data memiliki indeks yang tersedia dan beberapa mungkin tidak. Gunakan kotak dialog ini untuk membantu SQL Server memahami kemampuan penyedia. SQL Server menginstal beberapa penyedia data umum, namun ketika produk menyediakan perubahan data, penyedia yang diinstal oleh SQL Server mungkin tidak mendukung semua fitur terbaru. Sumber informasi terbaik tentang kemampuan produk yang menyediakan data adalah dokumentasi untuk produk tersebut.
Parameter dinamis
Menunjukkan bahwa penyedia mengizinkan sintaks penanda parameter '?' untuk kueri berparameter. Atur opsi ini hanya jika penyedia mendukung antarmuka ICommandWithParameters dan mendukung '?' sebagai penanda parameter. Mengatur opsi ini memungkinkan SQL Server untuk menjalankan kueri berparameter terhadap penyedia. Kemampuan untuk menjalankan kueri berparameter terhadap penyedia dapat menghasilkan performa yang lebih baik untuk kueri tertentu.Kueri berlapis
Menunjukkan bahwa penyedia mengizinkan pernyataan berlapisSELECTdalam klausa FROM. Mengatur opsi ini memungkinkan SQL Server untuk mendelegasikan kueri tertentu ke penyedia yang memerlukan pernyataan SELECT berlapis dalam klausa FROM.Tingkat nol saja
Hanya antarmuka OLE DB tingkat 0 yang dipanggil terhadap penyedia.Izinkan inproses
SQL Server memungkinkan penyedia untuk dibuat sebagai server dalam proses. Ketika opsi ini tidak diatur, perilaku defaultnya adalah membuat instans penyedia di luar proses SQL Server. Membuat instans penyedia di luar proses SQL Server melindungi proses SQL Server dari kesalahan yang ada pada penyedia. Ketika penyedia dibuat di luar proses SQL Server, pembaruan atau penyisipan merujuk kolom panjang (text, ,ntextatauimage) tidak diizinkan.Pembaruan yang tidak ditransaksikan
SQL Server memungkinkan pembaruan, bahkan jika ITransactionLocal tidak tersedia. Jika opsi ini diaktifkan, pembaruan terhadap penyedia tidak dapat dipulihkan, karena penyedia tidak mendukung transaksi.Indeks sebagai jalur akses
SQL Server mencoba menggunakan indeks penyedia untuk mengambil data. Secara default, indeks hanya digunakan untuk metadata dan tidak pernah dibukaMelarang akses ad hoc
SQL Server tidak mengizinkan akses ad hoc melalui fungsi OPENROWSET dan OPENDATASOURCE terhadap penyedia OLE DB. Ketika opsi ini tidak diatur, SQL Server juga tidak mengizinkan akses ad hoc.Mendukung operator 'Like'
Menunjukkan bahwa penyedia mendukung kueri menggunakan kata kunci LIKE.
Menggunakan T-SQL
Untuk membuat server tertaut dengan menggunakan Transact-SQL, gunakan pernyataan sp_addlinkedserver (Transact-SQL)CREATE LOGIN (Transact-SQL) dan sp_addlinkedsrvlogin (Transact-SQL).
Untuk membuat server tertaut ke instans SQL Server lain menggunakan Transact-SQL
Di Editor Kueri, masukkan perintah Transact-SQL berikut untuk menautkan ke instans SQL Server bernama
SRVR002\ACCTG:USE [master] GO EXEC master.dbo.sp_addlinkedserver @server = N'SRVR002\ACCTG', @srvproduct=N'SQL Server' ; GOJalankan kode berikut untuk mengonfigurasi server tertaut untuk menggunakan kredensial domain login yang menggunakan server tertaut.
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'SRVR002\ACCTG', @locallogin = NULL , @useself = N'True' ; GO
Tindak Lanjut: Langkah-langkah yang harus diambil setelah Anda membuat server tertaut
Untuk menguji server terhubung
Jalankan kode berikut untuk menguji koneksi ke server tertaut. Contoh ini mengembalikan nama database di server tertaut.
SELECT name FROM [SRVR002\ACCTG].master.sys.databases ; GO
Menulis kueri yang menggabungkan tabel dari server tertaut
Gunakan nama empat bagian untuk merujuk ke objek di server tertaut. Jalankan kode berikut untuk mengembalikan daftar semua login di server lokal dan login yang cocok di server yang ditautkan.
SELECT local.name AS LocalLogins, linked.name AS LinkedLogins FROM master.sys.server_principals AS local LEFT JOIN [SRVR002\ACCTG].master.sys.server_principals AS linked ON local.name = linked.name ; GOKetika NULL dikembalikan untuk login server tertaut, itu menunjukkan bahwa login tidak ada di server yang ditautkan. Login ini tidak akan dapat menggunakan server tertaut kecuali server tertaut dikonfigurasi untuk melewati konteks keamanan yang berbeda atau server tertaut menerima koneksi anonim.
Lihat Juga
Server Tertaut (Mesin Database)
sp_addlinkedserver (T-SQL)
sp_serveroption (T-SQL)