

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

# 從資料表刪除資料時，關聯式 (SQL) 資料庫與 DynamoDB 的差異
<a name="SQLtoNoSQL.Accessing"></a>

在應用程式可以存取資料庫之前，必須先進行*驗證*，以確保允許應用程式使用資料庫。必須對其進行*授權*，以便應用程式執行其具有許可的動作。

下列圖表說明用戶端與關聯式資料庫及 Amazon DynamoDB 的互動。

![\[與關聯式及 NoSQL 資料庫的互動。\]](http://docs.aws.amazon.com/zh_tw/amazondynamodb/latest/developerguide/images/SQLtoNoSQL.png)


下表提供用戶端互動任務的詳細資訊。


****  

| 特性 | 關聯式資料庫管理系統 (RDBMS) | Amazon DynamoDB | 
| --- | --- | --- | 
| 存取資料庫的工具 |  多數關聯式資料庫皆提供命令列介面 (CLI)，讓您可輸入臨機操作 SQL 陳述式並立即查看結果。  | 在大多數的案例中，您會撰寫應用程式程式碼。您也可以使用 AWS 管理主控台、 AWS Command Line Interface (AWS CLI) 或 NoSQL Workbench 將臨機操作請求傳送至 DynamoDB 並檢視結果。SQL 相容查詢語言 [PartiQL](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ql-reference.html) 讓您能在 DynamoDB 中選取、插入、更新和刪除資料。 | 
| 連線到資料庫 | 應用程式會建立並維持與資料庫的網路連線。當應用程式完成時，它會終止連線。 | DynamoDB 是一項 Web 服務，與該服務之間的互動是無狀態的。應用程式不需要維持耐久性網路連線。而是使用 HTTP(S) 請求及回應與 DynamoDB 互動。 | 
| 身分驗證 | 應用程式在經過驗證前無法連線到資料庫。RDBMS 可自行執行身分驗證，也可將此任務交由主機作業系統或目錄服務執行。 | 每一個發送至 DynamoDB 的請求都必須附有密碼編譯簽章，此簽章會驗證該特定請求。 AWS SDKs 提供建立簽章和簽署請求所需的所有邏輯。如需詳細資訊，請參閱《》中的[簽署 AWS API 請求](https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html)AWS 一般參考。 | 
| 授權 | 應用程式只能執行獲得授權的動作。資料庫管理員或應用程式擁有者可使用 SQL GRANT 及 REVOKE 陳述式控制對資料庫物件 (例如資料表)、資料 (例如資料表中的資料列) 的存取，或控制發行特定 SQL 陳述式的能力。 | 在 DynamoDB 中，授權由 AWS Identity and Access Management (IAM) 處理。您可以撰寫 IAM 政策來授予 DynamoDB 資源 (例如資料表) 相關許可，然後允許使用者和角色使用該政策。IAM 也針對 DynamoDB 資料表中的個別資料項目提供精細的存取控制。如需詳細資訊，請參閱[Amazon DynamoDB 的 Identity and Access Management](security-iam.md)。 | 
| 傳送請求 | 應用程式會針對想要執行的每項資料庫操作各發出一個 SQL 陳述式。在收到 SQL 陳述式後，RDBMS 會檢查其語法，建立執行操作的計畫，然後執行計畫。 | 應用程式會向 DynamoDB 傳送 HTTP(S) 請求。該請求包含要執行之 DynamoDB 操作的名稱及參數。DynamoDB 會立即執行請求。 | 
| 接收回應 | RDBMS 會傳回 SQL 陳述式的結果。若發生錯誤，RDBMS 會傳回錯誤狀態及訊息。 | DynamoDB 會傳回含有操作結果的 HTTP(S) 回應。若發生錯誤，DynamoDB 會傳回 HTTP 錯誤狀態及訊息。 | 