Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Babelfish mendukung server tertaut
Babelfish untuk Aurora Postgre SQL mendukung server tertaut dengan menggunakan ekstensi Postgre di versi 3.1.0. SQL tds_fdw
Untuk bekerja dengan server yang terhubung, Anda harus menginstal ekstensi tds_fdw
. Untuk informasi selengkapnya tentang ekstensi tds_fdw
, lihat .
Menginstal ekstensi tds_fdw
Anda dapat menginstal ekstensi tds_fdw
menggunakan metode berikut ini.
Menggunakan CREATE EXTENSION dari titik akhir Postgre SQL
Connect ke instans Postgre SQL DB Anda pada database Babelfish di port Postgre. SQL Gunakan akun yang memiliki peran rds_superuser.
psql --host=
your-DB-instance.aws-region.rds.amazonaws.com
--port=5432 --username=test
--dbname=babelfish_db --password
Instal ekstensi
tds_fdw
. Ini adalah proses instalasi satu kali. Anda tidak perlu menginstal ulang saat klaster DB dimulai ulang.babelfish_db=> CREATE EXTENSION tds_fdw; CREATE EXTENSION
Memanggil prosedur sp_execute_postgresql
tersimpan dari titik TDS akhir
Babelfish mendukung instalasi ekstensi tds_fdw
dengan memanggil prosedur sp_execute_postgresql
dari versi 3.3.0. Anda dapat mengeksekusi SQL pernyataan Postgre dari T- SQL endpoint tanpa keluar dari T-port. SQL Untuk informasi selengkapnya, silakan lihat Bekerja dengan Babelfish untuk prosedur Aurora Postgre SQL
Connect ke instans Postgre SQL DB Anda pada database Babelfish di T-port. SQL
sqlcmd -S
your-DB-instance.aws-region.rds.amazonaws.com
-Utest
-Ppassword
Instal ekstensi
tds_fdw
.1>
EXEC sp_execute_postgresql N'CREATE EXTENSION tds_fdw';2>go
Fungsionalitas yang didukung
Babelfish mendukung penambahan remote RDS untuk SQL Server atau Babelfish untuk titik akhir Aurora SQL Postgre sebagai server tertaut. Anda juga dapat menambahkan instance SQL Server jarak jauh lainnya sebagai server tertaut. Kemudian, gunakan OPENQUERY()
untuk mengambil data dari server tertaut ini. Mulai dari Babelfish versi 3.2.0, nama empat bagian juga didukung.
Prosedur tersimpan dan tampilan katalog berikut didukung untuk menggunakan server tertaut.
Prosedur tersimpan
sp_addlinkedserver – Babelfish tidak mendukung parameter
@provstr
.sp_addlinkedsrvlogin
Anda harus memberikan nama pengguna dan kata sandi jarak jauh eksplisit untuk terhubung ke sumber data jarak jauh. Anda tidak dapat terhubung dengan kredensial mandiri pengguna. Babelfish hanya mendukung
@useself = false
.Babelfish tidak mendukung parameter
@locallogin
karena mengonfigurasi akses server jarak jauh khusus untuk proses masuk lokal tidak didukung.
sp_linkedservers
sp_helplinkedsrvlogin
sp_dropserver
sp_droplinkedsrvlogin – Babelfish tidak mendukung parameter
@locallogin
karena mengonfigurasi akses server jarak jauh khusus untuk proses masuk lokal tidak didukung.sp_serveroption – Babelfish mendukung opsi server berikut:
waktu habis kueri (dari Babelfish versi 3.2.0)
waktu habis koneksi (dari Babelfish versi 3.3.0)
sp_testlinkedserver (dari Babelfish versi 3.3.0)
sp_enum_oledb_providers (dari Babelfish versi 3.3.0)
Tampilan katalog
sys.servers
sys.linked_logins
Menggunakan enkripsi dalam transit untuk koneksi
Koneksi dari sumber Babelfish untuk server Aurora Postgre ke SQL server jarak jauh target menggunakan enkripsi dalam transit (TLS/SSL), tergantung pada konfigurasi database server jarak jauh. Jika server jarak jauh tidak dikonfigurasi untuk enkripsi, server Babelfish yang membuat permintaan ke basis data jarak jauh kembali ke tidak terenkripsi.
Untuk menegakkan enkripsi koneksi
Jika server yang ditautkan target adalah instance RDS untuk SQL Server, tetapkan
rds.force_ssl = on
untuk instance SQL Server target. Untuk informasi selengkapnya tentangSSL/TLSkonfigurasi RDS untuk SQL Server, lihat Menggunakan SSL dengan instans Microsoft SQL Server DBJika server yang ditautkan target adalah Babelfish untuk SQL cluster Aurora Postgre, tetapkan
babelfishpg_tds.tds_ssl_encrypt = on
dan untuk server target.ssl = on
Untuk informasi lebih lanjut tentangSSL/TLS, lihatPengaturan SSL Babelfish dan koneksi klien.
Menambahkan Babelfish sebagai server tertaut dari Server SQL
Babelfish untuk Aurora Postgre SQL dapat ditambahkan sebagai server tertaut dari Server. SQL Pada database SQL Server, Anda dapat menambahkan Babelfish sebagai server tertaut menggunakan penyedia Microsoft OLE DB untukODBC:. MSDASQL
Ada dua cara untuk mengkonfigurasi Babelfish sebagai server tertaut dari SQL Server menggunakan MSDASQL penyedia:
Menyediakan string ODBC koneksi sebagai string penyedia.
Menyediakan Sistem DSN sumber ODBC data sambil menambahkan server yang ditautkan.
Batasan
OPENQUERY() hanya berfungsi untuk SELECT dan tidak berfungsi untukDML.
Nama objek empat bagian hanya berfungsi untuk membaca dan tidak berfungsi untuk memodifikasi tabel jarak jauh. An UPDATE dapat mereferensikan tabel jarak jauh dalam FROM klausa tanpa memodifikasinya.
Menjalankan prosedur tersimpan terhadap server tertaut Babelfish tidak didukung.
Peningkatan versi mayor Babelfish mungkin tidak berfungsi jika ada objek yang bergantung pada
OPENQUERY()
atau objek yang direferensikan melalui nama empat bagian. Anda harus memastikan bahwa objek apa pun yang mereferensikanOPENQUERY()
atau nama empat bagian dihapus sebelum peningkatan versi mayor.Jenis data berikut tidak berfungsi seperti yang diharapkan terhadap server Babelfish jarak jauh:
nvarchar(max)
,varchar(max)
,varbinary(max)
,binary(max)
, dantime
. Sebaiknya gunakan CAST fungsi untuk mengonversinya ke tipe data yang didukung.
Contoh
Dalam contoh berikut, instance Babelfish untuk Aurora Postgre terhubung ke SQL instance untuk Server di cloud. RDS SQL
EXEC master.dbo.sp_addlinkedserver @server=N'rds_sqlserver', @srvproduct=N'', @provider=N'SQLNCLI', @datasrc=N'
myserver.CB2XKFSFFMY7.US-WEST-2.RDS.AMAZONAWS.COM
'; EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'rds_sqlserver',@useself=N'False',@locallogin=NULL,@rmtuser=N'username
',@rmtpassword='password
';
Ketika server tertaut sudah terpasang, Anda kemudian dapat menggunakan T- SQL OPENQUERY () atau penamaan empat bagian standar untuk mereferensikan tabel, tampilan, atau objek lain yang didukung, di server jarak jauh:
SELECT * FROM OPENQUERY(rds_sqlserver, 'SELECT * FROM TestDB.dbo.t1'); SELECT * FROM rds_sqlserver.TestDB.dbo.t1;
Untuk menghapus server tertaut dan semua kredensial masuk terkait:
EXEC master.dbo.sp_dropserver @server=N'rds_sqlserver', @droplogins=N'droplogins';
Pemecahan Masalah
Anda dapat menggunakan grup keamanan yang sama untuk server sumber dan jarak jauh untuk memungkinkan keduanya berkomunikasi satu sama lain. Grup keamanan harus mengizinkan hanya lalu lintas masuk pada TDS port (1433 secara default) dan IP sumber dalam grup keamanan dapat diatur sebagai ID grup keamanan itu sendiri. Untuk informasi selengkapnya tentang cara mengatur aturan untuk menghubungkan ke satu instans dari instans yang lain dengan grup keamanan yang sama, lihat Aturan untuk menghubungkan ke satu instans dari sebuah instans dengan grup keamanan yang sama.
Jika akses tidak dikonfigurasi dengan benar, pesan kesalahan yang mirip dengan contoh berikut akan muncul saat Anda mencoba menjalankan kueri server jarak jauh.
TDS client library error: DB #: 20009, DB Msg: Unable to connect: server is unavailable or does not exist (mssql2019.aws-region.rds.amazonaws.com), OS #: 110, OS Msg: Connection timed out, Level: 9