

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

# 使用 PostgreSQL 相容用戶端存取 Aurora DSQL
<a name="accessing"></a>

Aurora DSQL 使用 [PostgreSQL 線路通訊協定](https://www.postgresql.org/docs/current/protocol.html)。您可以使用各種工具和用戶端連線至 PostgreSQL，例如 AWS CloudShell、psql、DBeaver 和 DataGrip。下表摘要說明 Aurora DSQL 如何映射常見的 PostgreSQL 連線參數：


| PostgreSQL | Aurora DSQL | 備註 | 
| --- | --- | --- | 
| 角色 (也稱為使用者或群組) | 資料庫角色 | Aurora DSQL 會為您建立名為 admin 的角色。建立自訂資料庫角色時，您必須使用 admin 角色，將其與 IAM 角色關聯，以便在連線至叢集時進行身分驗證。如需詳細資訊，請參閱[使用資料庫角色和 IAM 身分驗證](using-database-and-iam-roles.md)。 | 
| 主機 (也稱為主機名稱或 hostspec) | 叢集端點 | Aurora DSQL 單一區域叢集提供單一受管理端點，若該區域內發生無法使用的情況，系統會自動重新導向流量。 | 
| 站點 | 不適用 – 使用預設 5432 | 這是 PostgreSQL 的預設值。 | 
| 資料庫 (dbname) | 使用 postgres | 當您建立叢集時，Aurora DSQL 會自動建立此資料庫。 | 
| SSL 模式 | SSL 一律在伺服器端啟用 | 在 Aurora DSQL 中，系統支援 require SSL 模式。Aurora DSQL 會拒絕未使用 SSL 的連線。 | 
| 密碼 | 身分驗證權杖 | Aurora DSQL 使用暫時性身分驗證權杖，而非長期密碼。如需詳細資訊，請參閱 [在 Amazon Aurora DSQL 產生身分驗證記號](SECTION_authentication-token.md)。 | 

連線時，Aurora DSQL 需要簽章的 IAM [身分驗證字符](https://docs.aws.amazon.com/aurora-dsql/latest/userguide/SECTION_authentication-token.html)來取代傳統密碼。這些臨時字符是使用 AWS Signature 第 4 版產生，並且僅在建立連線時使用。連線後，工作階段會保持作用中狀態，直到結束或用戶端中斷連線為止。

如果您嘗試使用過期的權杖開啟新的工作階段，連線請求會失敗，而且必須產生新的權杖。如需詳細資訊，請參閱[在 Amazon Aurora DSQL 產生身分驗證記號](SECTION_authentication-token.md)。

## 支援的工作階段參數
<a name="accessing-session-parameters"></a>

Aurora DSQL 會自動最佳化儲存、連線管理和交易處理，因此支援一組集中的工作階段參數。Aurora DSQL 接受下表所列的參數。此集以外的參數會傳回下列錯誤：

```
ERROR: setting configuration parameter "{{parameter_name}}" not supported
```

Aurora DSQL 支援下列 PostgreSQL 工作階段參數。除非另有說明，否則您可以使用 `SET`、 `SET SESSION`或 將其設定為連線字串選項。您也可以使用 `SET LOCAL` 在單一交易期間設定任何這些參數。使用 `RESET`將參數還原為其預設值。


**支援的工作階段參數**  

| 參數 | 類別 | 描述 | 
| --- | --- | --- | 
| application\_name | 用戶端識別 | 設定連線中繼資料中報告的應用程式名稱。用於識別監控中的連線。 | 
| client\_encoding | 當地語系化 | 設定用戶端字元編碼。資料庫會在內部使用 UTF-8。 | 
| datestyle | 輸出格式 | 設定日期和時間值的顯示格式 （例如，ISO, MDY)。 | 
| extra\_float\_digits | 輸出格式 | 設定針對浮點值顯示的位數。有些驅動程式，例如 JDBC，請使用此參數。 | 
| intervalstyle | 輸出格式 | 設定間隔值的顯示格式。 | 
| timezone | 當地語系化 | 設定工作階段的時區。Aurora DSQL 會將所有時區感知日期和時間儲存在 UTC 內部。此參數控制 Aurora DSQL 如何向用戶端顯示值。 | 
| search\_path | 結構描述解析 | 設定不合格物件名稱的結構描述搜尋順序。 | 
| enable\_bitmapscan | 查詢規劃器 | 啟用或停用查詢規劃器對點陣圖掃描計劃類型的使用。 | 
| enable\_hashjoin | 查詢規劃器 | 啟用或停用查詢規劃器對加入雜湊計劃類型的使用。 | 
| enable\_indexonlyscan | 查詢規劃器 | 啟用或停用查詢規劃器對index-only-scan計劃類型的使用。 | 
| enable\_indexscan | 查詢規劃器 | 啟用或停用查詢規劃器對索引掃描計劃類型的使用。 | 
| enable\_material | 查詢規劃器 | 啟用或停用查詢規劃器對具體化的使用。 | 
| enable\_mergejoin | 查詢規劃器 | 啟用或停用查詢規劃器對合併加入計劃類型的使用。 | 
| enable\_nestloop | 查詢規劃器 | 啟用或停用查詢規劃器對巢狀迴圈聯結計劃的使用。 | 
| enable\_seqscan | 查詢規劃器 | 啟用或停用查詢規劃器對循序掃描計劃類型的使用。 | 
| disable\_sync\_create\_index | Aurora DSQL 特定 | 控制 是否以非同步方式CREATE INDEX執行。預設為 on，這表示 Aurora DSQL 會以非同步方式建立索引。設定為 off以在空白資料表上同步建立索引。 | 
| role | 工作階段身分 | 設定目前角色。在 Aurora DSQL 中，您只能在交易區塊SET LOCAL中使用 設定此參數。 | 

Aurora DSQL 會自動管理資料庫的下列層面，因此您不需要設定對應的 PostgreSQL 工作階段參數：
+ **連線和網路參數** – Aurora DSQL 會在內部管理連線生命週期和 TCP 設定，包括 `tcp_keepalives_idle`、 `tcp_keepalives_interval`和 `tcp_keepalives_count`。
+ **記憶體和資源參數** – Aurora DSQL 會自動管理記憶體配置，包括 `work_mem`和 `shared_buffers`。
+ **逾時參數** – Aurora DSQL 會強制執行自己的交易持續時間限制，包括 `statement_timeout`、 `lock_timeout`和 `idle_in_transaction_session_timeout`。
+ **複寫和 WAL 參數** – Aurora DSQL 透過其內建的多區域架構自動處理複寫，包括 `wal_level`和 `synchronous_commit`。
+ **記錄參數** – Aurora DSQL 會在內部管理記錄，包括 `log_statement`和 `client_min_messages`。
+ **交易參數** – Aurora DSQL 對所有交易使用固定`REPEATABLE READ`隔離層級。如果您的驅動程式需要指定隔離層級，請使用 `BEGIN ISOLATION LEVEL REPEATABLE READ`。

## 使用 SQL 用戶端存取 Aurora DSQL
<a name="accessing-sql-clients"></a>

Aurora DSQL 支援多個 PostgreSQL 相容用戶端來連線至您的叢集。下列各節說明如何使用 PostgreSQL 搭配 AWS CloudShell 或本機命令列進行連線，以及 GUI 型工具，例如 DBeaver 和 JetBrains DataGrip。每個用戶端都需要有效的身分驗證字符，如上一節所述。

**Topics**
+ [支援的工作階段參數](#accessing-session-parameters)
+ [使用 SQL 用戶端存取 Aurora DSQL](#accessing-sql-clients)
+ [使用 DBeaver 存取 Aurora DSQL](accessing-dbeaver.md)
+ [使用 JetBrains DataGrip 存取 Aurora DSQL](accessing-datagrip.md)
+ [使用 PostgreSQL 互動式終端機 (psql) 存取 Aurora DSQL](accessing-psql.md)
+ [使用適用於 SQLTools 的 Aurora DSQL 驅動程式](accessing-vscode.md)
+ [疑難排解](#accessing-troubleshooting)

## 疑難排解
<a name="accessing-troubleshooting"></a>

**SQL 用戶端的身分驗證憑證過期**

已建立的工作階段將保持驗證狀態，最長 1 小時，或直到明確中斷連線或用戶端逾時。如果需要建立新的連線，則必須在連線**的密碼**欄位中產生並提供新的身分驗證字符。嘗試開啟新的工作階段 （例如，列出新的資料表或開啟新的 SQL 主控台） 會強制新的身分驗證嘗試。若**連線**設定中的驗證權杖已失效，則新工作階段將建立失敗，且所有先前開啟的工作階段皆會失效。使用 `expires-in`選項選擇 IAM 身分驗證字符的持續時間時，請記住這一點，該選項預設為 15 分鐘，並可設定為七天的最大值。

此外，請參閱 Aurora DSQL 文件的[故障診斷](https://docs.aws.amazon.com/aurora-dsql/latest/userguide/troubleshooting.html)一節。