Halaman ini memberikan informasi tentang cara mengelola server tertaut pada instance Cloud SQL Anda, termasuk mendaftarkan instance, menambahkan server tertaut dan membuat kueri ke server tertaut tersebut.
Mendaftarkan instance untuk mengizinkan server tertaut
Untuk menambahkan cloudsql enable linked servers
flag ke instance Anda, gunakan
perintah berikut:
gcloud sql instances patch INSTANCE_NAME --database-flags="cloudsql enable linked servers"=on
Ganti INSTANCE_NAME
dengan nama instance
yang ingin Anda gunakan untuk menautkan server.
Untuk informasi selengkapnya, lihat mengonfigurasi flag database.
Menambahkan server tertaut
Untuk menambahkan server tertaut, jalankan perintah sp_addlinkedserver
Transact-SQL:
EXEC master.dbo.sp_addlinkedserver @server = N'LINKED_SERVER_NAME', @srvproduct=N'', @provider=N'SQLNCLI', @datasrc=N'TARGET_SERVER_ID'
Ganti kode berikut:
- LINKED_SERVER_NAME dengan nama server tertaut yang akan dibuat.
- TARGET_SERVER_ID dengan nama jaringan, nama DNS, atau alamat IP
untuk server tertaut. Untuk nama instance, gunakan format
servername\instancename
. Jika instance Anda menggunakan port non-standard, tambahkan nomor port tersebut. Misalnya,servername\instancename, 8080
.
Untuk menambahkan pemetaan pengguna bagi pengguna yang saat ini sedang login, jalankan perintah berikut:
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'LINKED_SERVER_NAME', @useself=N'True'
Ganti LINKED_SERVER_NAME dengan nama server tertaut.
Untuk membuat atau memperbarui login dan sandi jarak jauh, dan menerapkannya ke seluruh login lokal, jalankan perintah berikut:
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'LINKED_SERVER_NAME', @useself=N'False', @locallogin=N'LOGIN', @rmtuser=N'USER_ID', @rmtpassword='PASSWORD';
Ganti kode berikut:
- LINKED_SERVER_NAME dengan nama server tertaut.
- LOGIN dengan login pada server lokal.
locallogin
adalah sysname, dengan default NULL. NULL menentukan bahwa entri ini berlaku untuk seluruh login lokal yang terhubung kermtsrvname
. Jika bukan NULL,locallogin
dapat berupa login SQL Server atau login Windows. Jika Anda menggunakan login Windows, login tersebut harus memiliki akses ke SQL Server baik secara langsung, ataupun melalui keanggotaan dalam grup Windows yang memiliki akses. - USER_ID dengan pengguna yang login.
- PASSWORD dengan sandi pengguna.
Menambahkan server tertaut dengan koneksi terenkripsi
Untuk menambahkan server tertaut menggunakan koneksi terenkripsi, jalankan perintah
sp_addlinkedserver
Transact-SQL:
EXEC master.dbo.sp_addlinkedserver @server = N'LINKED_SERVER_NAME', @srvproduct=N'', @provider=N'SQLNCLI', @datasrc=N'TARGET_SERVER_ID, @provstr=N'Encrypt=yes;'
Ganti kode berikut:
- LINKED_SERVER_NAME dengan nama server tertaut yang akan dibuat.
- TARGET_SERVER_ID dengan nama server target, atau alamat IP dan nomor port pada server target.
Jika nama server berbeda dengan nama dalam sertifikat, Anda harus membuktikan bahwa SQL Server dapat memercayai sertifikat server. Untuk memperbarui string penyedia, jalankan perintah berikut:
EXEC master.dbo.sp_addlinkedserver @server = N'LINKED_SERVER_NAME', @srvproduct=N'', @provider=N'SQLNCLI', @datasrc=N'TARGET_SERVER_ID, @provstr=N'Encrypt=yes;TrustServerCertificate=yes;'
Ganti kode berikut:
- LINKED_SERVER_NAME dengan nama server tertaut yang akan dibuat.
- TARGET_SERVER_ID dengan nama server target, atau alamat IP dan nomor port pada server target.
Kueri server tertaut
Cloud SQL mendukung penggunaan nama empat bagian untuk melakukan kueri pada server tertaut (nama server, nama database, nama skema, dan nama objek),selain perintah berikut:
- OPENQUERY menjalankan kueri pada server yang telah ditentukan.
- MENYETUJUI memungkinkan Anda menjalankan SQL dinamis pada server tertaut.
Untuk informasi selengkapnya, lihat Membandingkan opsi eksekusi kueri jarak jauh.
Mengaktifkan remote procedure call pada server tertaut
Remote Procedure Call (RPC) memungkinkan Anda menjalankan prosedur yang telah tersimpan di server tertaut. Untuk
menambahkan RPC, jalankan perintah
sp_serveroption
Transact-SQL dengan argumen RPC. Terdapat dua argumen RPC:
rpc
mengaktifkan RPC dari server yang telah ditentukan.rpc out
mengaktifkan RPC ke server yang telah ditentukan.
Gunakan perintah sp_serveroption
berikut dengan argumen rpc
untuk mengaktifkan
RPC dari LINKED_SERVER_NAME:
EXEC sp_serveroption @server='LINKED_SERVER_NAME', @optname='rpc', @optvalue='TRUE'
Ganti LINKED_SERVER_NAME dengan nama server tertaut.
Gunakan perintah sp_serveroption
berikut dengan argumen rpc out
untuk
mengaktifkan RPC:
EXEC sp_serveroption @server='LINKED_SERVER_NAME', @optname='rpc out', @optvalue='TRUE'
Ganti LINKED_SERVER_NAME dengan nama server tertaut.
Menghapus pemetaan pengguna untuk server tertaut
Untuk menghapus pemetaan pengguna yang sebelumnya telah Anda tambahkan, jalankan perintah berikut:
EXEC master.dbo.sp_droplinkedsrvlogin @rmtsrvname=N'LINKED_SERVER_NAME', @locallogin=N'LOGIN';
Ganti kode berikut:
- LINKED_SERVER_NAME dengan nama server tertaut yang akan dihilangkan.
- LOGIN dengan login pada server lokal.
locallogin
adalah sysname, dengan default NULL. NULL menentukan bahwa entri ini berlaku untuk seluruh login lokal yang terhubung kermtsrvname
. Jika bukan NULL,locallogin
dapat berupa login SQL Server atau login Windows. Jika Anda menggunakan login Windows, login tersebut harus memiliki akses ke SQL Server baik secara langsung, ataupun melalui keanggotaan dalam grup Windows yang memiliki akses.
Menghapus instance yang telah terdaftar agar tidak mengizinkan server tertaut
Untuk menghapus server tertaut, lakukan langkah-langkah berikut:
- Hapus server tertaut yang sudah ada dengan prosedur tersimpan sp_dropserver Transact-SQL.
Hapus flag
cloudsql enable linked servers
untuk menghapus instance yang telah terdaftar.gcloud sql instances patch INSTANCE_NAME --database-flags="cloudsql enable linked servers"=off
Ganti
INSTANCE_NAME
dengan nama instance tempat Anda ingin menghapus server tertaut.Atau, Anda dapat menjalankan perintah berikut untuk menghapus seluruh flag database:
gcloud sql instances patch INSTANCE_NAME --clear-database-flags
Ganti
INSTANCE_NAME
dengan nama instance tempat Anda ingin menghapus server tertaut.
Memecahkan masalah
Pesan error | Pemecahan masalah |
---|---|
Msg 7411, Level 16, State 1, Line 25
|
Opsi DataAccess dinonaktifkan. Jalankan
perintah berikut untuk mengaktifkan akses data:EXEC sp_serveroption @server='LINKED_SERVER_NAME', @optname='data access', @optvalue='TRUE' Ganti LINKED_SERVER_NAME dengan nama server tertaut. |
Access to the remote server is denied because no
login-mapping exists. (Microsoft SQL Server, Error: 7416)
|
Jika mengalami masalah ini saat membuat koneksi
terenkripsi, Anda perlu mencoba cara lain yang menunjukkan ID pengguna saat
sedang mengakses server tertaut. Untuk melakukannya, jalankan perintah berikut:
EXEC master.dbo.sp_addlinkedserver @server = N'LINKED_SERVER_NAME', @srvproduct= N'', @provider= N'SQLNCLI', @datasrc= N'TARGET_SERVER_ID', @provstr= N'Encrypt=yes;TrustServerCertificate=yes;User ID=USER_ID' Ganti kode berikut:
|
Langkah berikutnya
- Pelajari cara menggunakan server tertaut.