我有啥方法可以按表级别限制对 Redshift 外部模式的访问?
Posted
技术标签:
【中文标题】我有啥方法可以按表级别限制对 Redshift 外部模式的访问?【英文标题】:I there any way to limit access to Redshift external schemas by table level?我有什么方法可以按表级别限制对 Redshift 外部模式的访问? 【发布时间】:2020-03-11 12:14:46 【问题描述】:我目前在一个项目中工作,我们正在使用 Redshift 和 Spectrum 来管理一些外部模式以及存储在 S3 中的数据。
为了访问外部架构,用户必须属于对该外部架构具有 USAGE 权限的组,但似乎通过 USAGE 授权,该用户将能够查看和查询所有外部架构表。
我想做的是只授予特定表的 SELECT 权限,而不是整个架构。
这可能吗?我检查了 AWS 文档并尝试了不同的方法,但由于外部表具有特殊性质,我还没有找到任何有用的信息。
提前致谢。
【问题讨论】:
【参考方案1】:您不能直接在外部表上执行此操作。
[删除了早期使用视图的方法,因为这无法解决问题]
【讨论】:
感谢您的回复@Swapnil,我已经尝试了视图但我收到错误:[0A000][500310] [Amazon](500310) Invalid operation: External tables are not supported in views; java.lang.RuntimeException: com.amazon.support.exceptions.ErrorException: [Amazon](500310) Invalid operation: External tables are not supported in views;
编辑了我的第一条评论。你回复太快了嘿嘿。
:) 恐怕你没有添加这个“没有模式绑定;”在您的视图的尽头。如果添加,它将起作用。如果是,请告诉我,我也会在我的答案中添加。
是的!就是这样,我现在要检查赠款是否适用于视图。谢谢@Swapnil Pandey
似乎没有办法实现这一点,因为我们仍然需要 USAGE 授权才能查询新视图,否则您会收到错误消息:´´´ [Amazon](500310) Invalid operation : 查询视图时模式 以上是关于我有啥方法可以按表级别限制对 Redshift 外部模式的访问?的主要内容,如果未能解决你的问题,请参考以下文章