由於「Lake Formation 許可不足」或「COLUMN_NOT_FOUND」錯誤,我的 Amazon Athena 查詢失敗。
解決方法
對您收到的錯誤訊息執行以下疑難排解步驟。
錯誤「Amazon_S3_location 上的 Lake Formation 許可不足」
當 AWS Identity and Access Management (IAM) 使用者或角色符合下列條件時,您會收到此錯誤:
- IAM 使用者或角色沒有來自 Lake Formation 的適當的 Amazon Simple Storage Service (Amazon S3) 資料位置許可。
- IAM 使用者或角色嘗試在向 AWS Lake Formation 註冊的 Amazon S3 儲存貯體上建立或變更 Data Catalog 資源。
若要解決此錯誤,您必須將資料位置許可授予您用來建立資料庫或資料表的 IAM 使用者或角色。將 Athena 與 Lake Formation 搭配使用時,務必從 Lake Formation 向 IAM 使用者或角色授予所需的 S3 許可。此外,請務必授予 IAM 使用者或角色所需的資料存取許可。
資料存取許可允許 IAM 使用者或角色讀取資料並將資料寫入 Amazon S3 位置。但是,Lake Formation 中的資料位置許可允許 IAM 使用者或角色建立和變更 Data Catalog 資源。Data Catalog 資源會指向註冊的 Amazon S3 位置。
確認資料湖位置已向 Lake Formation 註冊
- 開啟 AWS Lake Formation 主控台。
- 在導覽窗格的管理下,選擇資料湖位置。
- 在資料湖位置中,檢查 Data Catalog 資源指向的 S3 路徑已向 Lake Formation 註冊。
從 AWS Lake Formation 主控台授予資料位置許可
- 在導覽窗格中,選擇資料位置。
- 選取授予。
- 在授予許可對話方塊中,選取我的帳戶。
- 對於 IAM 使用者和角色,選取您要授予許可的 IAM 使用者或角色。
- 對於儲存位置,選取您從中收到錯誤的 S3 路徑。
- 選擇授予。
**注意:**僅當 S3 路徑位於同一帳戶內時,才執行這些步驟。如果 S3 路徑位於不同的帳戶中,請先確保符合所有跨帳户存取權先決條件。然後,遵循授予資料位置許可 (外部帳戶) 中提供的指示進行操作。
如需詳細資訊,請參閱授予資料位置許可 (相同帳戶)。
錯誤「database_name 上的 Lake Formation 許可不足」
依照下列步驟向 IAM 使用者或角色授予資料庫的許可。
- 開啟 Lake Formation 主控台。
- 在導覽窗格中,選擇資料庫。
- 選擇您的資料庫名稱,選擇動作,然後選擇授予。
- 在主體下,選擇 IAM 使用者和角色。
- 對於 IAM 使用者和角色,選擇您要授予資料庫許可的 IAM 使用者或角色。
- 在 LF 標籤或型錄資源下,選擇具名資料型錄資源。
- 在資料庫許可下,選擇**描述。
注意:**您也可以根據使用案例新增其他許可。
- 選擇授予。
錯誤「Lake Formation 許可不足: 需要在 database_name 上建立資料表」
依照下列步驟授予資料庫的 IAM 許可。
- 開啟 Lake Formation 主控台。
- 在導覽窗格的許可下,選擇資料湖許可。
- 選擇授予。
- 在主體下,選擇 IAM 使用者和角色。
- 對於 IAM 使用者和角色,選擇您要用於 Athena 的 IAM 使用者或角色。
- 在 LF 標籤或型錄資源下,選擇具名資料型錄資源。
- 對於資料庫,選擇您的 IAM 使用者或角色寫入的資料庫。
- 在資料庫許可下,根據您的使用案例選擇建立資料表或描述。
注意: IAM 使用者或角色必須在資料庫上具有描述和建立資料表許可,才能建立資料表。
- 選擇授予。
錯誤「COLUMN_NOT_FOUND:行 1:8: 沒有資料欄的關係中不允許使用 SELECT *」
依照下列步驟檢查資料庫的 DESCRIBE 許可。然後,檢查資料表上的 DESCRIBE 和 SELECT 許可。
**注意:**Lake Formation 管理員可以在 Athena 主控台中查看資料庫和資料表,但需要所需的許可才能查詢資料。
使用具名資源方法授予資料庫許可
- 開啟 Lake Formation 主控台。
- 在導覽窗格的許可下,選擇資料湖許可。
- 選擇授予。
- 在主體下,選擇 IAM 使用者和角色。
- 對於 IAM 使用者和角色,選擇您要與 Athena 搭配使用的 IAM 使用者或角色。
- 在 LF 標籤或型錄資源下,選擇具名資料型錄資源。
- 對於資料庫,選擇您的資料表的資料庫。
- 在資料庫許可下,選擇描述。
- 選擇授予。
如需詳細資訊,請參閱使用具名資源方法授予資料庫許可。
使用具名資源方法授予資料表許可
- 開啟 Lake Formation 主控台。
- 在導覽窗格的許可下,選擇資料湖許可。
- 選擇授予。
- 在主體下,選擇 IAM 使用者和角色。
- 對於 IAM 使用者和角色,選擇您要與 Athena 搭配使用的 IAM 使用者或角色。
- 在 LF 標籤或型錄資源下,選擇具名資料型錄資源。
- 對於資料庫,選擇您的資料庫。
- 對於資料表,選擇一個或多個資料表,或所有資料表。
- 在資料表許可下,選擇選取或描述以執行 SELECT 查詢,或為您的使用案例選擇資料表許可。
- 選擇授予。
注意:您也可以透過資料表的資源連結授予對資料表的許可。若要執行此操作,請在資料表頁面上,選擇資源連結,選擇動作,然後選擇授予目標。如需詳細資訊,請參閱 Lake Formation 中的資源連結如何運作。
相關資訊
授予資料位置許可