

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 連線至 Babelfish 資料庫叢集
<a name="babelfish-connect"></a>

若要連線至 Babelfish，請連線至執行 Babelfish 的 Aurora PostgreSQL 叢集端點。您的用戶端可以使用下列其中一個符合 TDS 7.1 到 7.4:版的用戶端驅動程式：
+ 開放式資料庫連線 (ODBC)
+ OLE DB 驅動程式/MSOLEDBSQL
+ Java 資料庫連線 (JDBC) 8.2.2 版 (mssql-jdbc-8.2.2) 及更新版本
+ Microsoft SqlClient Data Provider for SQL Server
+ .NET Data Provider for SQL Server
+ SQL Server Native Client 11.0 (已棄用)
+ OLE DB Provider/SQLOLEDB (已棄用)

BabelSQL 可讓您執行如下：
+ 在 TDS 連接埠上 (預設為連接埠 1433) 執行 SQL Server 工具、應用程式和語法。
+ 在 PostgreSQL 連接埠上 (預設為連接埠 5432) 執行 PostgreSQL 工具、應用程式和語法。

若要進一步了解連線至 Aurora PostgreSQL 的一般資訊，請參閱 [連接至 Amazon Aurora PostgreSQL 資料庫叢集](Aurora.Connecting.md#Aurora.Connecting.AuroraPostgreSQL)。

**注意**  
不支援使用 SQL Server OLEDB 提供者存取中繼資料的第三方開發人員工具。建議您針對這些工具使用 SQL Server JDBC、ODBC 或 SQL 原生用戶端連線。

從 Babelfish 5.1.0 版開始，預設會強制執行端對端連線加密。若要確保持續連線能力：
+ 為連線設定 SSL/TLS 加密。如需詳細資訊，請參閱[使用 SSL/TLS 加密與資料庫叢集的連線](UsingWithRDS.SSL.md)。
+ 在用戶端電腦匯入所需的憑證。如需詳細資訊，請參閱[搭配 Microsoft SQL Server 資料庫執行個體使用 SSL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/SQLServer.Concepts.General.SSL.Using.html)。

如果您想要繼續使用舊版 Babelfish (5.1.0 版之前) 的加密設定，您可以在資料庫叢集參數群組中將 `rds.force_ssl` 參數設為 `0`。

**Topics**
+ [尋找寫入器端點和連接埠號碼](#babelfish-connect-endpoint)
+ [建立對 Babelfish 的 C\$1 或 JDBC 用戶端連線](babelfish-connect-configure.md)
+ [使用 SQL Server 用戶端來連線至資料庫叢集](babelfish-connect-sqlserver.md)
+ [使用 PostgreSQL 用戶端來連線至資料庫叢集](babelfish-connect-PostgreSQL.md)

## 尋找寫入器端點和連接埠號碼
<a name="babelfish-connect-endpoint"></a>

若要連線到 Babelfish 資料庫叢集，請使用與資料庫叢集的寫入器 (主要) 執行個體相關聯的端點。執行個體的狀態必須為 **Available** (可用)。在為 Aurora PostgreSQL 資料庫叢集建立 Babelfish 後，執行個體可能需要 20 分鐘才可供使用。

**尋找資料庫端點**

1. 開啟 Babelfish 的主控台。

1. 在導覽窗格中，選擇 **Databases** (資料庫)。

1. 從列出的項目中選取您的 Babelfish for Aurora PostgreSQL 資料庫叢集，以查看其詳細資料。

1. 在 **Connectivity & security** (連線與安全性) 索引標籤上，注意可用的叢集 **Endpoints** (端點) 值。對於執行資料庫寫入或讀取操作的任何應用程式，請在連線字串中使用寫入器執行個體的叢集端點。  
![\[\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/AuroraUserGuide/images/Babelfish-database-endpoint.png)

如需 Aurora 資料庫叢集的詳細資訊，請參閱 [建立 Amazon Aurora 資料庫叢集](Aurora.CreateInstance.md)。

# 建立對 Babelfish 的 C\$1 或 JDBC 用戶端連線
<a name="babelfish-connect-configure"></a>

在下文中，您可以找到使用 C＃ 和 JDBC 類別連線至 Babelfish for Aurora PostgreSQL 的一些範例。

**Example ：使用 C\$1 程式碼來連線至資料庫叢集**  

```
string dataSource = 'babelfishServer_11_24';

//Create connection
connectionString = @"Data Source=" + dataSource
    +";Initial Catalog=your-DB-name"
    +";User ID=user-id;Password=password";
					
// [optional] To validate server certificate during TLS/SSL connection
connectionString = connectionString + ";ServerCertificate=/path/to/certificate.pem";					

SqlConnection cnn = new SqlConnection(connectionString);
cnn.Open();
```

**Example ：使用通用 JDBC API 類別和界面來連線至資料庫叢集**  

```
String dbServer = 
   "database-babelfish.cluster-123abc456def.us-east-1-rds.amazonaws.com";
String connectionUrl = "jdbc:sqlserver://" + dbServer + ":1433;" +
    "databaseName=your-DB-name;user=user-id;password=password";

// [optional] To validate server certificate during TLS/SSL connection
connectionUrl = connectionUrl + ";serverCertificate=/path/to/certificate.pem";

// Load the SQL Server JDBC driver and establish the connection.
System.out.print("Connecting Babelfish Server ... ");
Connection cnn = DriverManager.getConnection(connectionUrl);
```

**Example ：使用 SQL Server 特定 JDBC 類別和界面來連線至資料庫叢集**  

```
// Create datasource.
SQLServerDataSource ds = new SQLServerDataSource();
ds.setUser("user-id");
ds.setPassword("password");
String babelfishServer = 
   "database-babelfish.cluster-123abc456def.us-east-1-rds.amazonaws.com";

ds.setServerName(babelfishServer);
ds.setPortNumber(1433);
ds.setDatabaseName("your-DB-name");

// [optional] To validate server certificate during TLS/SSL connection
ds.setServerCertificate("/path/to/certificate.pem"); 

Connection con = ds.getConnection();
```

**重要**  
確保憑證符合 AWS 管理主控台上資料庫叢集組態中顯示的憑證授權機構。

# 使用 SQL Server 用戶端來連線至資料庫叢集
<a name="babelfish-connect-sqlserver"></a>

您可以使用 SQL Server 用戶端在 TDS 連接埠上與 Babelfish 連線。自 Babelfish 2.1.0 及更新版本開始，您可以使用 SSMS 物件總管或 SSMS 查詢編輯器連線到您的 Babelfish 叢集。

**限制**
+ 在 Babelfish 2.1.0 及更早版本中，使用 `PARSE` 檢查 SQL 語法未如預期運作。`PARSE` 命令並不會在未執行查詢的情況下檢查語法，而是會執行查詢，但不會顯示任何結果。使用 SMSS <Ctrl><F5> 組合鍵檢查語法是否具有相同的異常行為，亦即 Babelfish 意外執行查詢但不提供任何輸出。
+ Babelfish 不支援 MARS (多活動結果集)。請確保用於連線到 Babelfish 的任何用戶端應用程式都沒有設定為使用 MARS。
+ 對於 Babelfish 1.3.0 及較舊版本，SSMS 僅支援查詢編輯器。若要將 SSMS 搭配 Babelfish 使用，請務必在 SSMS 中開 [Query Editor] (查詢編輯器) 連線對話方塊，而不是物件總管。如果 Object Explorer (物件總管) 對話方塊開啟，請取消該對話方塊，再重新開啟 Query Editor (查詢編輯器)。在下圖中，您可以找到當連線到 Babelfish 1.3.0 或較舊版本時可選擇的功能表選項。  
![\[\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/AuroraUserGuide/images/babelfish_connect_ssms.png)

如需 SQL Server 和 Babelfish 之間的互通性和行為差異的詳細資訊，請參閱 [Babelfish for Aurora PostgreSQL 與 SQL Server 之間的差異](babelfish-compatibility.md)。

## 使用 sqlcmd 來連線至資料庫叢集
<a name="babelfish-connect-sqlcmd"></a>

您可以僅使用 SQL Server `sqlcmd` 命令列用戶端 19.1 版或更舊版本，以連線至支援 Babelfish 的 Aurora PostgreSQL 資料庫叢集並與其互動。不支援 SSMS 19.2 版來連線到 Babelfish 叢集。使用下列命令來連線。

```
sqlcmd -S endpoint,port -U login-id -P password -d your-DB-name
```

選項如下：
+ `-S` 是資料庫叢集的端點和 (選用) TDS 連接埠。
+ `-U` 是使用者的登入名稱。
+ `-P` 是與使用者相關聯的密碼。
+ `-d` 是 Babelfish 資料庫的名稱。

連線之後，就可以您在 SQL Server 上同樣使用的許多命令。如需一些範例，請參閱[從 Babelfish 系統目錄取得資訊](babelfish-query-database.md)。

## 使用 SSMS 來連線至資料庫叢集
<a name="babelfish-connect-SSMS"></a>

您可以使用 Microsoft SQL Server Management Studio (SSMS) 連線至執行 Babelfish 的 Aurora PostgreSQL 資料庫叢集。SSMS 包括各種工具，包括 SQL Server 匯入與匯出精靈，如 [將 SQL Server 資料庫遷移至 Babelfish for Aurora PostgreSQL](babelfish-migration.md) 中討論。如需 SSMS 的詳細資訊，請參閱 Microsoft 文件中的[下載 SQL Server Management Studio (SSMS)](https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver16)。若要設定 SSL/TLS，請參閱[搭配 Microsoft SQL Server 資料庫執行個體使用 SSL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/SQLServer.Concepts.General.SSL.Using.html)。

**使用 SSMS 來連線至 Babelfish 資料庫**

1. 啟動 SSMS。

1. 開啟 **Connect to Server ** (連接至伺服器) 對話方塊。若要繼續連線，請執行以下任一操作：
   + 選擇**新增查詢**。
   + 如果查詢編輯器已開啟，請選擇**查詢**、**連線**、**連線**。

1. 根據您的資料庫提供下列資訊：

   1. 針對**伺服器類型**，選擇**資料庫引擎**。

   1. 針對**伺服器名稱**，輸入 DNS 名稱。例如，您的伺服器名稱看起來如下。

      ```
      cluster-name.cluster-555555555555.aws-region.rds.amazonaws.com,1433
      ```

   1. 針對**驗證**，選擇 **SQL Server 驗證**。

   1. 針對**登入**，輸入您建立資料庫時選擇的使用者名稱。

   1. 針對**密碼**，輸入您建立資料庫時選擇的密碼。  
![\[\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/AuroraUserGuide/images/Babelfish-SSMS-connect-database1.png)

1. (選用) 選擇**選項**，然後選擇**連線內容**索引標籤。  
![\[\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/AuroraUserGuide/images/Babelfish-SSMS-connect-database2.png)

1. (選用) 針對**連線至資料庫**，指定要連線的已遷移 SQL Server 資料庫的名稱，然後選擇**連線**。

   如果出現訊息指出 SSMS 無法套用連線字串，請選擇**確定**。

   如果您在連接至 Babelfish 時遇到問題，請參閱 [連線失敗](babelfish-troubleshooting.md#babelfish-troubleshooting-connectivity)。

   如需 SQL Server 連線問題的詳細資訊，請參閱《*Amazon RDS 使用者指南*》中的[對您的 SQL Server 資料庫執行個體的連線進行故障診斷](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ConnectToMicrosoftSQLServerInstance.html#USER_ConnectToMicrosoftSQLServerInstance.Troubleshooting)。

# 使用 PostgreSQL 用戶端來連線至資料庫叢集
<a name="babelfish-connect-PostgreSQL"></a>

您可以使用 PostgreSQL 用戶端在 PostgreSQL 連接埠上連線至 Babelfish。從 5.1.0 版開始，Babelfish 伺服器預設會強制執行端對端連線加密。更新應用程式，以使用 SSL/TLS 憑證。如需 SSL/TLS 憑證的設定詳細資訊，請參閱[使用 SSL/TLS 保護 Aurora PostgreSQL 資料的安全](AuroraPostgreSQL.Security.md#AuroraPostgreSQL.Security.SSL)。

## 使用 psql 來連線至資料庫叢集
<a name="babelfish-connect-psql"></a>

您可以從 [PostgreSQL](https://www.postgresql.org/download/) 網站下載 PostgreSQL 用戶端。請遵循適用於您作業系統版本的指示，以安裝 psql。

您可以使用 `psql` 命令列用戶端，以查詢支援 Babelfish 的 Aurora PostgreSQL 資料庫叢集。連線時，請使用 PostgreSQL 連接埠 (預設為連接埠 5432)。通常，您不必指定連接埠號碼，除非您將號碼變更成非預設值。從 `psql` 用戶端使用下列命令連線至 Babelfish：

```
psql -h bfish-db.cluster-123456789012.aws-region.rds.amazonaws.com
-p 5432 -U postgres -d babelfish_db
```

參數如下：
+ `-h` – 您要存取的資料庫叢集 (叢集端點) 的主機名稱。
+ `-p` – 用於連線至資料庫執行個體的 PostgreSQL 連接埠號碼。
+ `-d` - 您要連線的資料庫。預設值為 `babelfish_db`。
+ `-U` – 您要存取的資料庫使用者帳戶。(此範例顯示預設主要使用者名稱。)

在 psql 用戶端執行 SQL 命令時，請以分號結束命令。例如，下列 SQL 命令查詢 [pg\$1tables 系統檢視表](https://www.postgresql.org/docs/current/view-pg-tables.html)，以傳回資料庫中每個資料表的相關資訊。

`SELECT * FROM pg_tables;`

psql 用戶端也有一組內建的中繼命令。*中繼命令*是一種調整格式的快捷方式，或提供捷徑以簡單易用的格式傳回中繼資料。例如，下列中繼命令傳回類似上一個 SQL 命令的資訊：

`\d`

中繼命令不需要以分號 (;) 結束。

若要退出 psql 用戶端，請輸入 `\q`。

如需使用 psql 用戶端來查詢 Aurora PostgreSQL 叢集的詳細資訊，請參閱 [PostgreSQL 文件](https://www.postgresql.org/docs/14/app-psql.html)。

## 使用 pgAdmin 來連線至資料庫叢集
<a name="babelfish-connect-pgadmin"></a>

您可以使用 pgAdmin 用戶端以原生 PostgreSQL 方言存取資料。

**使用 pgAdmin 用戶端來連線至叢集**

1. 從 [pgAdmin 網站](https://www.pgadmin.org/)下載並安裝 pgAdmin 用戶端。

1. 開啟用戶端並向 pgAdmin 驗證身分。

1. 開啟 **Servers** (伺服器) 的內容功能表 (按一下滑鼠右鍵)，然後選擇 **Create** (建立)、**Server** (伺服器)。  
![\[\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/AuroraUserGuide/images/pgAdmin1.png)

1. 在 **Create - Server** (建立 - 伺服器) 對話方塊中輸入資訊。

   在 **Connection (連線)** 索引標籤上，針對 **Host (主機)**，新增 Aurora PostgreSQL 叢集位址，針對 **Port (連接埠)**，新增 PostgreSQL 連接埠號碼 (預設為 5432)。提供身分驗證詳細資訊，然後選擇 **Save** (儲存)。  
![\[\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/AuroraUserGuide/images/pgAdmin2.png)

連線之後，您可以使用 pgAdmin 功能，在 PostgreSQL 連接埠上監控和管理 Aurora PostgreSQL 叢集。

![\[\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/AuroraUserGuide/images/pgAdmin3.png)


如需進一步了解，請參閱 [pgAdmin](https://www.pgadmin.org/) 網頁。