View a markdown version of this page

Bekerja dengan basis data SQL Server menggunakan ekstensi tds_fdw - Amazon Relational Database Service

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Bekerja dengan basis data SQL Server menggunakan ekstensi tds_fdw

Anda dapat menggunakan ekstensi tds_fdw PostgreSQL untuk mengakses basis data yang mendukung protokol aliran data tabular (TDS), seperti basis data Sybase dan Microsoft SQL Server. Pembungkus data asing ini memungkinkan Anda terhubung dari instans DB RDS for PostgreSQL ke basis data yang menggunakan protokol TDS, termasuk Amazon RDS for Microsoft SQL Server. Untuk informasi selengkapnya, lihat fdw/tds_fdw dokumentasi tds- pada GitHub.

Ekstensi tds_fdw didukung pada Amazon RDS for PostgreSQL versi 14.2, 13.6, dan rilis yang lebih baru.

Mengatur DB Aurora PostgreSQL untuk menggunakan ekstensi tds_fdw

Dalam prosedur berikut, Anda dapat menemukan contoh pengaturan dan penggunaan tds_fdw dengan instans DB RDS for PostgreSQL . Sebelum dapat terhubung ke basis data SQL Server menggunakan tds_fdw, Anda harus mendapatkan detail berikut untuk instans:

  • Nama host atau titik akhir. Untuk instans DB RDS for SQL Server, Anda dapat menemukan titik akhir menggunakan Konsol. Pilih tab Konektivitas & keamanan, lalu lihat di bagian "Titik akhir dan port".

  • Nomor port. Nomor port default untuk Microsoft SQL Server adalah 1433.

  • Nama basis data. Pengidentifikasi DB.

Anda juga perlu memberikan akses di grup keamanan atau daftar kontrol akses (ACL) untuk port SQL Server, 1433. Baik instans DB RDS for PostgreSQL dan instans DB RDS for SQL Server memerlukan akses ke port 1433. Jika akses tidak dikonfigurasi dengan benar, Anda akan melihat pesan kesalahan seperti berikut saat mencoba membuat kueri Microsoft SQL Server:

ERROR: DB-Library error: DB #: 20009, DB Msg: Unable to connect: Adaptive Server is unavailable or does not exist (mssql2019.aws-region.rds.amazonaws.com), OS #: 0, OS Msg: Success, Level: 9
Untuk menggunakan tds_fdw agar terhubung ke basis data SQL Server
  1. Hubungkan ke instans DB PostgreSQL menggunakan akun yang memiliki peran rds_superuser:

    psql --host=your-DB-instance.aws-region.rds.amazonaws.com --port=5432 --username=test –-password
  2. Instal ekstensi tds_fdw:

    test=> CREATE EXTENSION tds_fdw; CREATE EXTENSION

Setelah ekstensi diinstal pada instans DB RDS for PostgreSQL, Anda dapat mengatur server asing.

Untuk membuat server asing

Lakukan tugas-tugas ini pada instans DB RDS for PostgreSQL menggunakan akun yang memiliki hak istimewa rds_superuser.

  1. Membuat server asing pada instans DB RDS for PostgreSQL:

    test=> CREATE SERVER sqlserverdb FOREIGN DATA WRAPPER tds_fdw OPTIONS (servername 'mssql2019.aws-region.rds.amazonaws.com', port '1433', database 'tds_fdw_testing'); CREATE SERVER

    Untuk mengakses data non-ASCII di sisi SQLServer, buat tautan server dengan opsi character_set pada instans DB RDS for PostgreSQL:

    test=> CREATE SERVER sqlserverdb FOREIGN DATA WRAPPER tds_fdw OPTIONS (servername 'mssql2019.aws-region.rds.amazonaws.com', port '1433', database 'tds_fdw_testing', character_set 'UTF-8'); CREATE SERVER
  2. Berikan izin kepada pengguna yang tidak memiliki hak istimewa peran rds_superuser, misalnya user1:

    test=> GRANT USAGE ON FOREIGN SERVER sqlserverdb TO user1;
  3. Hubungkan sebagai user1, lalu buat pemetaan kepada pengguna SQL Server:

    test=> CREATE USER MAPPING FOR user1 SERVER sqlserverdb OPTIONS (username 'sqlserveruser', password 'password'); CREATE USER MAPPING
  4. Buat tabel asing yang dihubungkan ke tabel SQL Server:

    test=> CREATE FOREIGN TABLE mytab (a int) SERVER sqlserverdb OPTIONS (table 'MYTABLE'); CREATE FOREIGN TABLE
  5. Buat kueri tabel asing:

    test=> SELECT * FROM mytab; a --- 1 (1 row)

Gunakan enkripsi bergerak untuk koneksi

Koneksi dari ke SQL Server menggunakan enkripsi dalam transit () tergantung pada konfigurasi database SQL Server. TLS/SSL Jika SQL Server tidak dikonfigurasi untuk enkripsi, klien RDS for PostgreSQL yang membuat permintaan ke basis data SQL Server akan dikembalikan ke status tidak terenkripsi.

Anda dapat menerapkan enkripsi untuk koneksi ke instans DB RDS for SQL Server dengan mengatur parameter rds.force_ssl. Untuk mempelajari caranya, lihat Memaksa koneksi ke instans DB untuk menggunakan SSL. Untuk informasi selengkapnya tentang SSL/TLS konfigurasi untuk RDS untuk SQL Server, lihat Menggunakan SSL dengan instans Microsoft SQL Server DB.