本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 tds_fdw 副檔名來處理SQL伺服器資料庫
您可以使用 Postgre SQL tds_fdw
擴充功能來存取支援表格式資料流 (TDS) 通訊協定的資料庫,例如 Sybase 和 Microsoft SQL 伺服器資料庫。此外部資料包裝函式可讓您RDS從 Postgre 資料庫 資料SQL庫叢集連線到使用該TDS通訊協定的資料庫,包括適用RDS於 Microsoft SQL 伺服器的 Amazon。如需詳細資訊,請參閱上的 tds-fdw/tds_fdw 文
該tds_fdw
擴展程序在 Amazon Aurora Postgre SQL 版本 13.6 和更高版本上受到支持。
設置您的 Aurora 後SQL數據庫以使用 tds_fdw 擴展
在下列程序中,您可以找到設定和使用搭配 Postgre 資料庫執行tds_fdw
個叢集的範例。SQL在您可以使用連接到SQL服務器數據庫之前tds_fdw
,您需要獲取實例的下列詳細信息:
主機名稱或端點。對RDS於SQL伺服器資料庫執行個體,您可以使用主控台尋找端點。選擇 Connectivity & security (連線和安全) 索引標籤,然後查看「端點和連線埠」區段。
連線埠號碼。Microsoft SQL 服務器的默認端口號是 1433。
資料庫的名稱。資料庫識別符。
您還需要為SQL伺服器連接埠 1433 提供安全性群組或存取控制清單 (ACL) 的存取權。叢集和SQL伺服器RDS資料庫執行個體都需要存取連接埠 1433。如果未正確設定存取,當您嘗試查詢 Microsoft SQL 伺服器時,您會看到下列錯誤訊息︰
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
若要使用 tds_fdw 連線至伺服器資料庫 SQL
使用具有以下
rds_superuser
角色的帳戶 Connect 到 Postgre SQL 資料個體 Aurora Postgre 資料庫叢集的主要執行個體:psql --host=
your-cluster-name-instance-1
.aws-region
.rds.amazonaws.com --port=5432 --username=test –-password安裝
tds_fdw
擴充功能:test=>
CREATE EXTENSION tds_fdw;
CREATE EXTENSION
在的 Aurora Postgre SQL 資料庫叢集上安裝擴充功能後,即可設定外部伺服器。SQL
建立外部伺服器
使用具rds_superuser
有權限的帳戶,在 Postgre SQL 資料庫執行個叢集上執行這些工作。
在用於 Postgre 資料庫執行個體的 Aurora Postgre SQL 資料庫叢集中建立外部伺服器:SQL
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
若要存取SQLServer側邊的非ASCII資料,使用 Postgre 資料庫執行個體的 Aurora Postgre 資料SQL庫叢集中的字元集選項建立伺服器連結:SQL
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
將權限授予沒有
rds_superuser
角色權限的使用者,例如user1
:test=>
GRANT USAGE ON FOREIGN SERVER
sqlserverdb
TOuser1
;以使用者 1 的身分 Connect,並建立與SQL伺服器使用者的對應:
test=>
CREATE USER MAPPING FOR user1 SERVER
sqlserverdb
OPTIONS (username 'sqlserveruser
', password 'password
');CREATE USER MAPPING
建立連結至SQL伺服器資料表的外部資料表:
test=>
CREATE FOREIGN TABLE mytab (a int) SERVER
sqlserverdb
OPTIONS (table 'MYTABLE
');CREATE FOREIGN TABLE
查詢外部資料表:
test=>
SELECT * FROM mytab;
a --- 1 (1 row)
對連線使用傳輸中加密
從 Postgre SQL RDS SQL 到伺服器的 Aurora 連線會根據SQL伺服器資料庫組態使用傳輸中的加密 (TLS/SSL)。SQL如果SQL伺服器未設定為加密,則向SQL伺服器資料庫發出要求的 Postgre SQL 用戶端會回復RDS為未加密狀態。
您可以透過設定rds.force_ssl
參數來強制執行SQL伺RDS服器資料庫執行個體的連線加密。若要瞭解如何操作,請參閱強制連線至資料庫執行個體以供使用SSL。如需伺服器SSL/TLS設定的詳細資訊,請參閱SSL搭配 Microsoft SQL SQL 伺服器資料庫執行個體搭配使用。RDS