Babelfish mendukung server tertaut - Amazon Aurora

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
  1. 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
  2. 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

  1. Connect ke instans Postgre SQL DB Anda pada database Babelfish di T-port. SQL

    sqlcmd -S your-DB-instance.aws-region.rds.amazonaws.com -U test -P password
  2. 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 DB

  • Jika 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 mereferensikan OPENQUERY() 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), dan time. 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