

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

# 使用 SQL 語意授予存取權
<a name="s3-tables-sql"></a>

您可以在資料表和資料表儲存貯體政策中使用 SQL 語義，將許可權授予資料表。您可以使用的 SQL 語義範例為 `CREATE`、`INSERT`、`DELETE`、`UPDATE` 和 `ALTER`。下表提供與 SQL 語義相關聯的 API 動作清單，可供您做為將許可權授予使用者的參考。

S3 Tables 僅支援部分使用 SQL 語意的許可。例如，`CreateTable` API 只會在資料表儲存貯體中建立空資料表。您需要其他許可 (例如 `UpdateTableMetadata`、`PutTableData` 和 `GetTableMetadataLocation`)，才能設定資料表結構描述。這些額外許可同時表示您也授予使用者在資料表中插入資料列的存取權。如果您想要僅根據 SQL 語意來管控存取權，建議您使用 [AWS Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/what-is-lake-formation.html) 或與 S3 Tables 整合的任何第三方解決方案。


| 資料表層級活動 | IAM 動作 | 
| --- | --- | 
| SELECT | s3tables:GetTableData, s3tables:GetTableMetadataLocation | 
| CREATE | s3tables:CreateTable, s3tables:UpdateTableMetadataLocation, s3tables:PutTableData, s3tables:GetTableMetadataLocation,  | 
| INSERT | s3tables:UpdateTableMetadataLocation, s3tables:PutTableData, s3tables:GetTableMetadataLocation | 
| UPDATE | s3tables:UpdateTableMetadataLocation, s3tables:PutTableData, s3tables:GetTableMetadataLocation | 
| ALTER,RENAME | s3tables:UpdateTableMetadataLocation, s3tables:PutTableData, s3tables:GetTableMetadataLocation, s3tables:RenameTable  | 
| DELETE,DROP | s3tables:DeleteTable, s3tables:UpdateTableMetadataLocation, s3tables:PutTableData, s3tables:GetTableMetadataLocation  | 

**注意**  
要從資料表儲存貯體刪除資料表，需要 `s3tables:DeleteTable` 許可。此權限可讓您永久移除資料表，及其所有相關聯的資料和中繼資料。請小心使用此權限，因為刪除作業無法復原。