View a markdown version of this page

Bekerja dengan basis data SQL Server menggunakan ekstensi tds_fdw - Amazon Aurora

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 klaster DB Aurora 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 Aurora PostgreSQL versi 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 klaster DB Aurora 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 klaster DB Aurora 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 utama klaster DB Aurora PostgreSQL menggunakan akun yang memiliki peran rds_superuser:

    psql --host=your-cluster-name-instance-1.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 klaster DB Aurora PostgreSQL , Anda dapat mengatur server asing.

Untuk membuat server asing

Lakukan tugas-tugas ini pada klaster DB Aurora PostgreSQL menggunakan akun yang memiliki hak istimewa rds_superuser.

  1. Membuat server asing pada klaster DB Aurora 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 klaster DB Aurora 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 Aurora PostgreSQL RDS untuk PostgreSQL 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.