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 for Aurora PostgreSQL mendukung server tertaut dengan menggunakan ekstensi tds_fdw
PostgreSQL di versi 3.1.0. Untuk bekerja dengan server yang terhubung, Anda harus menginstal ekstensi tds_fdw
. Untuk informasi selengkapnya tentang ekstensi tds_fdw
, lihat Bekerja dengan pembungkus data asing yang didukung untuk Amazon Aurora PostgreSQL.
Menginstal ekstensi tds_fdw
Anda dapat menginstal ekstensi tds_fdw
menggunakan metode berikut ini.
Menggunakan CREATE EXTENSION dari titik akhir PostgreSQL
Hubungkan ke instans DB PostgreSQL Anda pada basis data Babelfish di port PostgreSQL. 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 tersimpan sp_execute_postgresql
dari titik akhir TDS
Babelfish mendukung instalasi ekstensi tds_fdw
dengan memanggil prosedur sp_execute_postgresql
dari versi 3.3.0. Anda dapat menjalankan pernyataan PostgreSQL dari titik akhir T-SQL tanpa keluar dari port T-SQL. Untuk informasi selengkapnya, lihat Referensi prosedur Babelfish for Aurora PostgreSQL
Hubungkan ke instans DB PostgreSQL Anda pada basis data Babelfish di port T-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 RDS for SQL Server jarak jauh atau titik akhir Babelfish for Aurora PostgreSQL sebagai server tertaut. Anda juga dapat menambahkan instans 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 server Babelfish for Aurora PostgreSQL sumber ke server jarak jauh target menggunakan enkripsi dalam transit (TLS/SSL), tergantung konfigurasi basis data 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 tertaut target adalah instans RDS for SQL Server, tetapkan
rds.force_ssl = on
untuk instans SQL Server target. Untuk informasi selengkapnya tentang konfigurasi SSL/TLS untuk RDS for SQL Server, lihat Menggunakan SSL dengan instans DB Microsoft SQL ServerJika server tertaut target adalah klaster Babelfish for Aurora PostgreSQL, atur
babelfishpg_tsql.tds_ssl_encrypt = on
danssl = on
untuk server target. Untuk informasi selengkapnya tentang SSL/TLS, lihat Pengaturan SSL Babelfish dan koneksi klien.
Menambahkan Babelfish sebagai server tertaut dari SQL Server
Babelfish for Aurora PostgreSQL dapat ditambahkan sebagai server tertaut dari SQL Server. Pada basis data SQL Server, Anda dapat menambahkan Babelfish sebagai server tertaut menggunakan penyedia Microsoft OLE DB untuk ODBC : MSDASQL.
Ada dua cara untuk mengonfigurasi Babelfish sebagai server tertaut dari SQL Server menggunakan penyedia MSDASQL:
Menyediakan string koneksi ODBC sebagai string penyedia.
Sediakan DSN Sistem dari sumber data ODBC selagi menambahkan server tertaut.
Batasan
OPENQUERY () hanya berfungsi untuk SELECT dan tidak berfungsi untuk DML.
Nama objek empat bagian hanya berfungsi untuk membaca dan tidak berfungsi untuk memodifikasi tabel jarak jauh. UPDATE dapat mereferensikan tabel jarak jauh dalam klausa FROM 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 fungsi CAST untuk mengonversinya ke tipe data yang didukung.
Contoh
Dalam contoh berikut, instans Babelfish for Aurora PostgreSQL menghubungkan ke instans RDS for SQL Server di cloud.
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
';
Saat server tertaut sudah terpasang, Anda 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 hanya boleh mengizinkan lalu lintas masuk pada port TDS (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