問題
您試圖使用一個集群創建一個表,表啟用了acl,但出現以下錯誤:
錯誤的SQL語句:SecurityException:用戶沒有權限選擇任何文件。
導致
這個錯誤發生在一個表ACL-enabled集群如果你不是管理員,您沒有足夠的權限創建一個表。
AWS
例如,在你的筆記本您嚐試創建一個表位於S3使用鑲花數據源:
% sql CREATE TABLE mytable使用鑲花選項(PATH =“s3: / / my-root-bucket /文件夾/我的桌子)刪除
Azure
例如,在你的筆記本使用鑲花您試圖創建一個表數據源位於Azure Blob存儲:
% sql使用鑲花選項(創建表mytable路徑= ' wasbs: / / my-container@my-storage-account.blob.core.windows.net/my-table')刪除
解決方案
你應該問你的管理員授予您訪問blob存儲文件係統,使用以下選項。如果管理員不能授予您訪問數據對象,你必須問管理員表給你。
- 如果你想使用一個cta(創建表,選擇)語句來創建表,管理員應該授予你選擇文件係統上的特權:
%的sql選擇任何文件授予“user1”
- 例子商品交易顧問基金聲明:
Azure
% sql創建表mytable SELECT * FROM parquet. wasbs: / / my-container@my-storage-account.blob.core.windows.net/my-table`刪除
- 如果你想使用一個CTOP(創建表選項路徑)聲明表,管理員必須提升你被授予特權修改除了選擇。
% sql格蘭特選擇、修改任何文件“user1”
例子CTOP聲明:
Azure
% sql使用鑲花選項(創建表mytable路徑= ' wasbs: / / my-container@my-storage-account.blob.core.windows.net/my-table')刪除
AWS
給予上述數據訪問權限不取代任何潛在我角色或S3 bucket的政策。例如,如果一個grant語句user1格蘭特選擇、修改任何文件但我執行連接到集群中的作用明確否認讀取目標S3 bucket,然後呢格蘭特語句不會讓桶或桶內的物體突然可讀性。
刪除Azure
給予上述數據訪問權限不取代任何潛在用戶訪問控製權限或Blob存儲容器。例如,如果一個grant語句user1格蘭特選擇、修改任何文件但用戶權限執行連接到集群明確否認讀取到目標容器,然後呢格蘭特聲明不會讓容器或容器內的物體突然可讀性。
刪除