sp_addlinkedsrvlogin (T-SQL)
Berlaku untuk:SQL Server
Membuat atau memperbarui pemetaan antara login pada instans lokal SQL Server dan akun keamanan di server jarak jauh.
Sintaks
sp_addlinkedsrvlogin
[ @rmtsrvname = ] N'rmtsrvname'
[ , [ @useself = ] 'useself' ]
[ , [ @locallogin = ] N'locallogin' ]
[ , [ @rmtuser = ] N'rmtuser' ]
[ , [ @rmtpassword = ] N'rmtpassword' ]
[ ; ]
Argumen
[ @rmtsrvname = ] N'rmtsrvname'
Nama server tertaut tempat pemetaan masuk berlaku. @rmtsrvname adalah sysname, tanpa default.
[ @useself = ] 'useself'
Menentukan apakah akan terhubung ke rmtsrvname dengan meniru login lokal atau secara eksplisit mengirimkan login dan kata sandi. @useself adalah varchar(8), dengan default true
.
- Nilai
true
menentukan bahwa login menggunakan kredensial mereka sendiri untuk terhubung ke @rmtsrvname, dengan argumen @rmtuser dan @rmtpassword diabaikan. false
menentukan bahwa argumen @rmtuser dan @rmtpassword digunakan untuk menyambungkan ke @rmtsrvname untuk @locallogin yang ditentukan.
Jika @rmtuser dan @rmtpassword diatur ke NULL
, tidak ada login atau kata sandi yang digunakan untuk menyambungkan ke server tertaut.
[ @locallogin = ] N'locallogin'
Login di server lokal. @locallogin adalah sysname, dengan default NULL
. NULL
menentukan bahwa entri ini berlaku untuk semua login lokal yang tersambung ke @rmtsrvname. Jika tidak NULL
, @locallogin bisa menjadi login SQL Server atau akun Windows. Akun Windows harus memiliki akses ke SQL Server secara langsung, atau melalui keanggotaan dalam grup Windows.
[ @rmtuser = ] N'rmtuser'
Login jarak jauh yang digunakan untuk menyambungkan ke @rmtsrvname kapan @useself adalah false
. @rmtuser adalah sysname, dengan default NULL
. Ketika server jarak jauh adalah instans SQL Server yang tidak menggunakan Autentikasi Windows, @rmtuser adalah login SQL Server.
[ @rmtpassword = ] N'rmtpassword'
Kata sandi yang terkait dengan @rmtuser. @rmtpassword adalah sysname, dengan default NULL
.
Mengembalikan nilai kode
0
(berhasil) atau 1
(kegagalan).
Keterangan
Saat pengguna masuk ke server lokal dan menjalankan kueri terdistribusi yang mengakses tabel di server tertaut, server lokal harus masuk ke server tertaut atas nama pengguna untuk mengakses tabel tersebut. Gunakan sp_addlinkedsrvlogin
untuk menentukan kredensial yang digunakan server lokal untuk masuk ke server tertaut.
Catatan
Untuk membuat rencana kueri terbaik saat Anda menggunakan tabel di server tertaut, prosesor kueri harus memiliki statistik distribusi data dari server tertaut. Pengguna yang memiliki izin terbatas pada kolom tabel apa pun mungkin tidak memiliki izin yang memadai untuk mendapatkan semua statistik yang berguna, dan mungkin menerima rencana kueri yang kurang efisien dan mengalami performa yang buruk. Jika server tertaut adalah instans SQL Server, untuk mendapatkan semua statistik yang tersedia, pengguna harus memiliki tabel atau menjadi anggota peran server tetap sysadmin , peran database tetap db_owner , atau peran database tetap db_ddladmin di server yang ditautkan. SQL Server 2012 SP1 (11.0.3x) memodifikasi pembatasan izin untuk mendapatkan statistik dan memungkinkan pengguna dengan izin SELECT untuk mengakses statistik yang tersedia melalui DBCC SHOW_STATISTICS. Untuk informasi selengkapnya, lihat bagian Izin DBCC SHOW_STATISTICS (Transact-SQL).
Pemetaan default antara semua login di server lokal dan login jarak jauh di server tertaut secara otomatis dibuat dengan menjalankan sp_addlinkedserver
. Pemetaan default menyatakan bahwa SQL Server menggunakan kredensial pengguna dari login lokal saat menyambungkan ke server tertaut atas nama login. Ini setara dengan menjalankan sp_addlinkedsrvlogin
dengan @useself diatur ke true
untuk server tertaut, tanpa menentukan nama pengguna lokal. Gunakan sp_addlinkedsrvlogin
hanya untuk mengubah pemetaan default atau untuk menambahkan pemetaan baru untuk login lokal tertentu. Untuk menghapus pemetaan default atau pemetaan lainnya, gunakan sp_droplinkedsrvlogin
.
Alih-alih harus menggunakan sp_addlinkedsrvlogin
untuk membuat pemetaan masuk yang telah ditentukan sebelumnya, SQL Server dapat secara otomatis menggunakan kredensial keamanan Windows (nama login windows dan kata sandi) pengguna yang mengeluarkan kueri untuk menyambungkan ke server tertaut ketika semua kondisi berikut ada:
Pengguna tersambung ke SQL Server dengan menggunakan Mode Autentikasi Windows.
Delegasi akun keamanan tersedia di klien dan mengirim server.
Penyedia mendukung Mode Autentikasi Windows; misalnya, SQL Server yang berjalan di Windows.
Catatan
Delegasi tidak harus diaktifkan untuk skenario lompatan tunggal, tetapi diperlukan untuk skenario multi-hop.
Setelah autentikasi dilakukan oleh server tertaut dengan menggunakan pemetaan yang ditentukan dengan menjalankan sp_addlinkedsrvlogin
instans lokal SQL Server, izin pada objek individual dalam database jarak jauh ditentukan oleh server tertaut, bukan server lokal.
sp_addlinkedsrvlogin
tidak dapat dijalankan dari dalam transaksi yang ditentukan pengguna.
Izin
Memerlukan izin UBAH LOGIN APA PUN di server.
Contoh
J. Koneksi semua login lokal ke server tertaut dengan menggunakan kredensial pengguna mereka sendiri
Contoh berikut membuat pemetaan untuk memastikan bahwa semua login ke server lokal tersambung ke server Accounts
tertaut dengan menggunakan kredensial pengguna mereka sendiri.
EXEC sp_addlinkedsrvlogin 'Accounts';
Atau
EXEC sp_addlinkedsrvlogin 'Accounts', 'true';
Catatan
Jika ada pemetaan eksplisit yang dibuat untuk login individual, pemetaan tersebut lebih diutamakan daripada pemetaan global apa pun yang mungkin ada untuk server tertaut tersebut.
B. Koneksi login tertentu ke server tertaut dengan menggunakan kredensial pengguna yang berbeda
Contoh berikut membuat pemetaan untuk memastikan bahwa pengguna Domain\Mary
Windows tersambung ke server Accounts
tertaut dengan menggunakan login MaryP
dan kata sandi d89q3w4u
.
EXEC sp_addlinkedsrvlogin 'Accounts', 'false', 'Domain\Mary', 'MaryP', 'd89q3w4u';
Perhatian
Contoh ini tidak menggunakan Autentikasi Windows. Kata sandi akan ditransmisikan tidak terenkripsi. Kata sandi mungkin terlihat dalam definisi sumber data dan skrip yang disimpan ke disk, dalam cadangan, dan dalam file log. Jangan pernah menggunakan kata sandi administrator dalam koneksi semacam ini. Konsultasikan dengan administrator jaringan Anda untuk panduan keamanan khusus untuk lingkungan Anda.
Konten terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk