问题
您试图使用一个集群创建一个表,表启用了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格兰特选择、修改任何文件但用户权限执行连接到集群明确否认读取到目标容器,然后呢格兰特声明不会让容器或容器内的物体突然可读性。
删除