Redshift 表所有权和删除查询
Posted
技术标签:
【中文标题】Redshift 表所有权和删除查询【英文标题】:Redshift Table Ownership And Drop Query 【发布时间】:2020-04-07 12:47:49 【问题描述】:用户和范围 -
-
write_user - 对所有表的所有访问权限
read_user - 对所有表的读取权限
backup_pruner - 对架构备份中的所有表的所有 GRANTS。
我的问题陈述 -
我编写了一个自动化程序,它必须删除名为备份的模式的表,其中表是由 write_user 创建的。
现在,为了删除表,我必须使用 backup_pruner 用户,这就是问题所在。 由于 write_user 在此处创建表,因此它是备份中所有表的所有者,并且只有所有者/超级用户可以删除表。
如何从这里开始?
回答为什么要使用单独的用户来删除表的问题 -
如果使用不当/任何极端情况,将表格作为 DROP 的可访问性收紧,那么对于其他表格也可能是灾难性的。
【问题讨论】:
【参考方案1】:考虑使用使用SECURITY DEFINER
创建的存储过程来删除表。以这种方式创建的 SP 以创建者的权限运行。
您可以定义允许删除的表名列表,SP 在采取行动之前会对其进行检查。
我在 GitHub 上创建了这种方法的示例:sp_controlled_access
【讨论】:
感谢您的帮助。以上是关于Redshift 表所有权和删除查询的主要内容,如果未能解决你的问题,请参考以下文章